diff --git a/docs/en/UI/AspNetCore/Customization-User-Interface.md b/docs/en/UI/AspNetCore/Customization-User-Interface.md
index a360665c7b..3fc2c0886b 100644
--- a/docs/en/UI/AspNetCore/Customization-User-Interface.md
+++ b/docs/en/UI/AspNetCore/Customization-User-Interface.md
@@ -299,7 +299,7 @@ Menu contributors are executed whenever need to render the menu. There is alread
### Toolbar Contributors
-Toolbar system is used to define toolbars. Modules (or your application) can add items to a toolbar, then the theme renders the toolbar on the layout.
+[Toolbar system](Toolbars.md) is used to define toolbars on the user interface. Modules (or your application) can add items to a toolbar, then the theme renders the toolbar on the layout.
There is only one standard toolbar (named "Main" - defined as a constant: `StandardToolbars.Main`). For the basic theme, it is rendered as shown below:
@@ -368,10 +368,84 @@ That's all, you will see the notification icon on the toolbar when you run the a
`NotificationViewComponent` in this sample simply returns a view without any data. In real life, you probably want to query database (or an HTTP API) to get notifications and pass to the view. If you need, you can add a `JavaScript` or `CSS` file to the global bundle (as described before) for your toolbar item.
-### Layouts
-
-TODO
+See the [toolbars document](Toolbars.md) for more about the toolbar system.
### Layout Hooks
+[Layout Hooks](Layout-Hooks.md) system allows you to add code at some specific parts of the layout. Given standard hook names are defined by the ABP framework:
+
+* **"Header.First"** (Defined as a constant: `LayoutHooks.Head.First`): To add code to the beginning in the `head` HTML element.
+* **"Header.Last"** (Defined as a constant: `LayoutHooks.Head.Last`): To add code to the end in the `head` HTML element.
+* **"Body.First"** (Defined as a constant: `LayoutHooks.Body.First`): To add code to the beginning in the `head` HTML element.
+* **"Body.Last"** (Defined as a constant: `LayoutHooks.Body.Last`): To add code to the end in the `head` HTML element.
+
+All layouts of all themes should implement these hooks. You can then add a view component into any of the hook points.
+
+#### Example: Add Google Analytics Script
+
+Assume that you need to add the Google Analytics script to the layout (that will be available for all the pages).
+
+First, create a view component in your project:
+
+
+
+**NotificationViewComponent.cs**
+
+````csharp
+public class GoogleAnalyticsViewComponent : AbpViewComponent
+{
+ public IViewComponentResult Invoke()
+ {
+ return View("/Pages/Shared/Components/GoogleAnalytics/Default.cshtml");
+ }
+}
+````
+
+**Default.cshtml**
+
+````html
+
+````
+
+Change `UA-xxxxxx-1` with your own code.
+
+You can then add this component to any of the hook points in the `ConfigureServices` of your module:
+
+````csharp
+Configure(options =>
+{
+ options.Add(
+ LayoutHooks.Head.Last, //The hook name
+ typeof(GoogleAnalyticsViewComponent) //The component to add
+ );
+});
+````
+
+Now, the GA code will be inserted in the `head` of the page as the last item. You (or the modules you are using) can add multiple items to the same hook. All of them will be added to the layout.
+
+The configuration above adds the `GoogleAnalyticsViewComponent` to all layouts. You may want to only add to a specific layout:
+
+````csharp
+Configure(options =>
+{
+ options.Add(
+ LayoutHooks.Head.Last,
+ typeof(GoogleAnalyticsViewComponent),
+ layout: StandardLayouts.Application //The layout to add
+ );
+});
+````
+
+See the layouts section below to learn more about the layout system.
+
+### Layouts
+
TODO
\ No newline at end of file
diff --git a/docs/en/UI/AspNetCore/Layout-Hooks.md b/docs/en/UI/AspNetCore/Layout-Hooks.md
new file mode 100644
index 0000000000..49b334c6c0
--- /dev/null
+++ b/docs/en/UI/AspNetCore/Layout-Hooks.md
@@ -0,0 +1,3 @@
+# Layout Hooks
+
+TODO
\ No newline at end of file
diff --git a/docs/en/UI/AspNetCore/Toolbars.md b/docs/en/UI/AspNetCore/Toolbars.md
new file mode 100644
index 0000000000..cc3bcd95be
--- /dev/null
+++ b/docs/en/UI/AspNetCore/Toolbars.md
@@ -0,0 +1,3 @@
+# Toolbars
+
+TODO
\ No newline at end of file
diff --git a/docs/en/images/bookstore-google-analytics-view-component.png b/docs/en/images/bookstore-google-analytics-view-component.png
new file mode 100644
index 0000000000..e548a00935
Binary files /dev/null and b/docs/en/images/bookstore-google-analytics-view-component.png differ