{"id":436,"date":"2026-08-18T12:40:31","date_gmt":"2026-08-18T12:40:31","guid":{"rendered":"https:\/\/x.sheep-mine.ts.net\/index.php\/building-onboarding-registration-ui-net-maui\/"},"modified":"2026-08-18T12:40:31","modified_gmt":"2026-08-18T12:40:31","slug":"building-onboarding-registration-ui-net-maui","status":"publish","type":"post","link":"https:\/\/x.sheep-mine.ts.net\/index.php\/building-onboarding-registration-ui-net-maui\/","title":{"rendered":"Building an Onboarding and Registration UI in .NET MAUI"},"content":{"rendered":"<p><br \/>\n<\/p>\n<div wp_automatic_readability=\"248.50344336262\">\n<p><span class=\"featured\">See how to use LinearGradientBrush and RadialGradientBrush, structure grid layouts and create a dynamic form using the Telerik DataForm in .NET MAUI.<\/span><\/p>\n<p>Have you ever seen apps with super fresh screens with gradients that make you think: \u201cOMG, where do I get that image to use as a background in my apps?\u201d \ud83d\udc40<\/p>\n<p>Well, today you won\u2019t just see a UI like that \u2026 you\u2019ll learn how to create it from scratch. This UI is inspired by a design from <a rel=\"nofollow\" target=\"_blank\" target=\"_blank\" href=\"https:\/\/dribbble.com\/shots\/22753453-Sign-In-Sign-Up-Form-Mobile-App\" data-sf-ec-immutable=\"\">Dribbble<\/a>, and we\u2019ll recreate it step by step.<\/p>\n<p>Here\u2019s where it gets interesting: we\u2019ll build that super modern gradient using <code>LinearGradientBrush<\/code> in .NET MAUI, without relying on external images, achieving that clean look directly from code.<\/p>\n<p>From there, we\u2019ll put together the entire experience: an onboarding screen with a clean and modern design, along with a registration form using the Progress Telerik UI for <a rel=\"nofollow\" target=\"_blank\" target=\"_blank\" href=\"https:\/\/www.telerik.com\/maui-ui\/dataform\" data-sf-ec-immutable=\"\">.NET MAUI DataForm<\/a>.<\/p>\n<p>The best part is that you\u2019ll understand every step of the process, from the background gradient to the structure of the form and how to use the components, so you can easily adapt it to your own projects.<\/p>\n<p>So let\u2019s get started, and you\u2019ll see how simple and fast it\u2019s to build a UI like this. \ud83d\ude80<\/p>\n<h2 id=\"how-will-the-explanation-work\">How Will the Explanation Work?<\/h2>\n<p>So you can understand everything 100%, I\u2019ll explain how the process will work:<\/p>\n<p>\u2796 <strong>Visual diagram:<\/strong> Before we start, you\u2019ll see a diagram with a screenshot of the design we want to achieve. This design will be divided into screens, each identified with a name and a color. Each one will be explained individually.<\/p>\n<p>\u2796 <strong>Code explanation per block:<\/strong> In addition to the written explanation, each screen includes a set of blocks with the exact code snippets you need to implement and achieve the final result.<\/p>\n<p>\u2796 <strong>Step-by-step visual progress:<\/strong> Each explanation will have its corresponding screenshot, so you can see the progress as we build the UI.<\/p>\n<p>\u26a0\ufe0f For this design, we took inspiration from an original Dribbble UI, but made some adaptations and adjustments to align it with the goals of this article.<\/p>\n<h2 id=\"\ud83d\udd27-environment-setup\">\ud83d\udd27 Environment Setup<\/h2>\n<p>You\u2019ll learn how to take advantage of some of the powerful Telerik UI for .NET MAUI components in this post. If you don\u2019t have the .NET MAUI library installed yet, visit the <a rel=\"nofollow\" target=\"_blank\" target=\"_blank\" href=\"https:\/\/www.telerik.com\/maui-ui\/documentation\/get-started\/quickstart\" data-sf-ec-immutable=\"\">quick start page<\/a>, which explains step-by-step how to install Telerik UI for .NET MAUI, download the license key, configure the Telerik package source and install the Telerik MCP server (if needed).<\/p>\n<h2 id=\"breaking-down-the-design\">Breaking Down the Design<\/h2>\n<p>To make this easier to follow, I\u2019ve divided the design into clear blocks. We\u2019ll build each part one at a time, in the order you see below.<\/p>\n<p><img decoding=\"async\" sf-image-responsive=\"true\" src=\"https:\/\/www.telerik.com\/sfimages\/default-source\/blogs\/2026\/2026-08\/01_visual_structure.png?sfvrsn=9e86635b_2\" title=\"01_visual_structure\" alt=\"Visual structure of 1. Onboarding and 2. Signup\" sf-size=\"362110\"\/><\/p>\n<h2 id=\"onboarding\">1. Onboarding<\/h2>\n<p>Oh yeahh! We\u2019ve reached the first screen! \ud83d\ude0e This is an onboarding screen, and I really like it because it\u2019s perfect for practicing XAML while building a modern UI.<\/p>\n<p>One of the highlights here is the gradient background. When we see something like this, it\u2019s easy to think we need an image to achieve it, but that\u2019s not the case. We\u2019ll build it from scratch using <code>LinearGradientBrush<\/code> from .NET MAUI, giving you full control to customize and experiment with gradients directly from code, without relying on external assets.<\/p>\n<p>On top of that, this screen helps us structure a real layout by combining key UI elements: a centered image, a title with a description, and simple actions like a button and a \u201cSkip\u201d option.<\/p>\n<h3 id=\"adding-the-gradient\">Adding the Gradient<\/h3>\n<p>To get started with the code, the first thing we\u2019ll create is the gradient that will be used as the background for the entire page. We\u2019ll assign it directly as the background of the <code>ContentPage<\/code>.<\/p>\n<p>Using <code>LinearGradientBrush<\/code>, add the following code block right before defining the main layout. Keep in mind that you can tweak each variation of the gradient using <code>GradientStop<\/code>.<\/p>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><?xml version=\"1.0\" encoding=\"utf-8\" ????> \r\n<contentpage xmlns=\"http:\/\/schemas.microsoft.com\/dotnet\/2021\/maui\" xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2009\/xaml\" x:class=\"TicketSampleApp.Pages.FormsUI.FormIntroPage\" title=\"FormIntroPage\"> \r\n<contentpage.background> \r\n\t    <lineargradientbrush startpoint=\"0,0\" endpoint=\"0.8,1\"> \r\n\t    <gradientstop color=\"#FFCFE8\" offset=\"0.00\"\/> \r\n\t    <gradientstop color=\"#F7D5F3\" offset=\"0.28\"\/> \r\n\t    <gradientstop color=\"#ECE1FF\" offset=\"0.55\"\/> \r\n\t    <gradientstop color=\"#DDF0FF\" offset=\"0.82\"\/> \r\n\t    <gradientstop color=\"#F7FCFF\" offset=\"1.00\"\/> \r\n\t    <\/lineargradientbrush> \r\n    <\/contentpage.background>\r\n \r\n<!-- Add your Grid here -->\r\n \r\n<\/contentpage>\r\n<\/code><\/pre>\n<p>\u270d\ufe0f If you want to learn more about <a rel=\"nofollow\" target=\"_blank\" target=\"_blank\" href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/maui\/user-interface\/brushes\/lineargradient?view=net-maui-10.0\" data-sf-ec-immutable=\"\">LinearGradientBrush, I recommend checking out the MS Learn article<\/a>.<\/p>\n<h3 id=\"main-layout\">Main Layout<\/h3>\n<p>Now let\u2019s continue with one of the most important components in a .xaml file: the main layout. For this screen, we\u2019ll add a <strong>Grid<\/strong> with two columns and five rows:<\/p>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><grid padding=\"24\" rowdefinitions=\"420,Auto,Auto,*,Auto\" columndefinitions=\"*,Auto\"> \r\n\t    <!-- Add the remaining code here -->  \r\n<\/grid>\r\n<\/code><\/pre>\n<p>Keep in mind that this <strong>Grid<\/strong> will contain all the elements of your page, so it should be placed inside the <strong>ContentPage<\/strong>, exactly where the previous code block says: \u201cAdd your Grid here.\u201d<\/p>\n<h3 id=\"the-halo\">The Halo<\/h3>\n<p>As you may notice, the main image has a kind of \u201chalo\u201d behind it, almost like a soft circle. In this case, we enhanced that effect using a <strong>RadialGradientBrush<\/strong>. \ud83d\ude0e<\/p>\n<p>This code block should be placed right at the beginning of the <strong>Grid<\/strong>, before adding the image and the rest of the elements.<\/p>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><!-- Halo --> \r\n<ellipse grid.row=\"0\" grid.columnspan=\"2\" widthrequest=\"340\" heightrequest=\"340\" horizontaloptions=\"Center\" verticaloptions=\"Center\" opacity=\"0.65\" margin=\"0,-40,0,0\"> \r\n\t    <ellipse.fill> \r\n\t    <radialgradientbrush center=\"0.5,0.32\" radius=\"0.75\"> \r\n\t\t    <gradientstop color=\"#FFFFFF\" offset=\"0.0\"\/> \r\n\t\t    <gradientstop color=\"#FFFFFF\" offset=\"0.2\"\/> \r\n\t\t    <gradientstop color=\"#FFF6FB\" offset=\"0.4\"\/> \r\n\t\t    <gradientstop color=\"#F3E3F8\" offset=\"0.65\"\/> \r\n\t\t    <gradientstop color=\"Transparent\" offset=\"1.0\"\/> \r\n    <\/radialgradientbrush> \r\n    <\/ellipse.fill> \r\n<\/ellipse>\r\n<\/code><\/pre>\n<p>\u270d\ufe0f If you want to learn more about <a rel=\"nofollow\" target=\"_blank\" target=\"_blank\" href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/maui\/user-interface\/brushes\/radialgradient?view=net-maui-10.0\" data-sf-ec-immutable=\"\">RadialGradientBrush, check out the MS Learn article<\/a>.<\/p>\n<h3 id=\"main-images-labels-and-button\">Main Images, Labels and Button<\/h3>\n<p>Now we\u2019ll continue by adding the remaining elements of the screen: the main image, labels and the button.<\/p>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><!-- Image --> \r\n<image grid.row=\"0\" grid.columnspan=\"2\" source=\"onboarding_cartoon\" heightrequest=\"450\" aspect=\"AspectFit\" horizontaloptions=\"Center\" verticaloptions=\"Center\"\/>\r\n \r\n<!-- Title --> \r\n<label grid.row=\"1\" grid.columnspan=\"2\" text=\"Get Detailed Analytics\" fontsize=\"24\" fontattributes=\"Bold\" textcolor=\"#111111\" margin=\"0,20,0,0\"\/>\r\n \r\n<!-- Description --> \r\n<label grid.row=\"2\" grid.columnspan=\"2\" text=\"Complete the quiz to get a detailed report\nof your performance and challenge\nyourself to achieve more.\" fontsize=\"14\" fontattributes=\"Bold\" textcolor=\"#333333\" lineheight=\"1.3\" margin=\"0,24,0,0\"\/>\r\n     \r\n<!-- Skip --> \r\n<label grid.row=\"4\" grid.column=\"0\" text=\"Skip\" fontattributes=\"Bold\" fontsize=\"15\" verticaloptions=\"Center\" horizontaloptions=\"Start\"\/> \r\n\r\n<!-- Button --> \r\n<button grid.row=\"4\" grid.column=\"1\" text=\"Next\" fontsize=\"17\" fontattributes=\"Bold\" textcolor=\"White\" backgroundcolor=\"#111111\" cornerradius=\"10\" padding=\"35,14\" horizontaloptions=\"End\"\/>\r\n<\/code><\/pre>\n<p>Once the layout and components are in place, the result should look like this:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.telerik.com\/sfimages\/default-source\/blogs\/2026\/2026-08\/02_onboarding_page.png?sfvrsn=cbc8612c_2\" alt=\"1. Onboarding Page\"\/><\/p>\n<h2 id=\"sign-up\">2. Sign Up<\/h2>\n<p>For our second screen, we\u2019ll also add a gradient. As you can see, it\u2019s not exactly the same as the one on the previous screen, so we\u2019ll create a new one with different color variations, applying it in the same way we did before, directly in the <strong>ContentPage.<\/strong><\/p>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><contentpage xmlns=\"http:\/\/schemas.microsoft.com\/dotnet\/2021\/maui\" xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2009\/xaml\" x:class=\"TicketSampleApp.Pages.FormsUI.SignUpPage\" xmlns:telerik=\"clr-namespace:Telerik.Maui.Controls;assembly=Telerik.Maui.Controls\" title=\"SignUpPage\"> \r\n    <contentpage.background> \r\n\t    <lineargradientbrush startpoint=\"0,0\" endpoint=\"1,1\"> \r\n\t\t    <gradientstop color=\"#F8F7FF\" offset=\"0.00\"\/> \r\n\t\t    <gradientstop color=\"#FFFFFF\" offset=\"0.28\"\/> \r\n\t\t    <gradientstop color=\"#F9FBFF\" offset=\"0.50\"\/> \r\n\t\t    <gradientstop color=\"#EAF7FF\" offset=\"0.72\"\/> \r\n\t\t    <gradientstop color=\"#F8DDF2\" offset=\"1.00\"\/> \r\n\t    <\/lineargradientbrush> \r\n    <\/contentpage.background> \r\n\r\n<!-- Add your Grid here -->  \r\n\r\n<\/contentpage>\r\n<\/code><\/pre>\n<h3 id=\"main-layout-of-sign-up\">Main Layout of Sign Up<\/h3>\n<p>Just like in the previous page, we\u2019ll use a Grid. In this case, it will have eight rows and two columns. Inside this <strong>Grid<\/strong>, we\u2019ll add all the remaining elements.<\/p>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><grid padding=\"26\" rowdefinitions=\"Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto\" columndefinitions=\"*,*\" columnspacing=\"12\" verticaloptions=\"Center\" rowspacing=\"18\"> \r\n\r\n    <!-- Add the remaining code here --> \r\n\r\n<\/grid>\r\n<\/code><\/pre>\n<h3 id=\"title--description\">Title &#038; Description<\/h3>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><label grid.row=\"0\" grid.columnspan=\"2\" text=\"Sign Up\" fontsize=\"24\" fontattributes=\"Bold\"\/>\r\n \r\n<label grid.row=\"1\" grid.columnspan=\"2\" text=\"Just a few quick things to get started\" fontsize=\"14\"\/>\r\n<\/code><\/pre>\n<h2 id=\"lets-add-the-form\">Let\u2019s Add the Form!<\/h2>\n<p>One of my favorite moments has arrived \ud83d\ude0d (because yes, I absolutely love this component). For our form, we\u2019ll use the <strong>Telerik UI for .NET MAUI DataForm<\/strong>!<\/p>\n<p>To use it, don\u2019t forget to follow the instructions in the <strong>\u201c\ud83d\udd27 Environment Setup\u201d<\/strong> section explained earlier. Additionally, you\u2019ll just need to add the following namespace to your XAML:<\/p>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\">xmlns:telerik=\"clr-namespace:Telerik.Maui.Controls;assembly=Telerik.Maui.Controls\"\r\n<\/code><\/pre>\n<h3 id=\"creating-the-model\">Creating the Model<\/h3>\n<p>To display the fields in our form, we\u2019ll create a model where we define everything we need, such as the email and password. This is also where we specify whether each field is required, its display name and the data type.<\/p>\n<p>The data type is especially important, for example, for password fields. It masks the input, showing <code>***<\/code> as you type.<\/p>\n<p>Additionally, the Telerik DataForm uses these attributes to automatically generate and validate the UI, which means we don\u2019t need to manually create each input field or handle basic validation logic.<\/p>\n<p>Our model should look like this:<\/p>\n<pre class=\" language-csharp\"><code class=\"prism  language-csharp\">public class SignUp : NotifyPropertyChangedBase\r\n{ \r\n    private string email; \r\n    private string password; \r\n    private string confirmPassword;\r\n     \r\n    [Required] \r\n    [Display(Name = \"Email ID\")] \r\n    public string Email \r\n    { \r\n\t    get => email; \r\n\t    set => UpdateValue(ref email, value); \r\n    }\r\n     \r\n    [Required] \r\n    [Display(Name = \"New Password\")] \r\n    [DataType(DataType.Password)]\r\n     \r\n    public string Password \r\n    { \r\n\t    get => password;  \r\n\t    set => UpdateValue(ref password, value); \r\n    }\r\n     \r\n    [Required] \r\n    [Display(Name = \"Confirm Password\")] \r\n    [DataType(DataType.Password)]\r\n     \r\n    public string ConfirmPassword \r\n    { \r\n\t    get => confirmPassword; \r\n\t    set => UpdateValue(ref confirmPassword, value); \r\n    } \r\n}\r\n<\/code><\/pre>\n<p>Now, go to your XAML page and set the <code>BindingContext<\/code> from the code-behind. For this article, we\u2019ll keep the example simple and assign a new instance of our SignUp model directly in the page constructor:<\/p>\n<pre class=\" language-csharp\"><code class=\"prism  language-csharp\">public SignUpPage() \r\n{ \r\n    InitializeComponent(); \r\n    this.BindingContext = new Models.SignUp(); \r\n}\r\n<\/code><\/pre>\n<p>This allows the DataForm to read the model properties and generate the corresponding fields based on the attributes we defined earlier.<\/p>\n<h3 id=\"adding-it-in-xaml\">Adding It in XAML<\/h3>\n<p>Finally, we can add it to our XAML. Simply include something like the following:<\/p>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><raddataform grid.row=\"2\" grid.columnspan=\"2\" x:name=\"dataForm\" automationid=\"dataForm\"\/>\r\n<\/code><\/pre>\n<p>At this point, the DataForm will automatically generate the form fields based on the model we defined earlier.<\/p>\n<h3 id=\"terms--conditions-and-button\">Terms &#038; Conditions and Button<\/h3>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><checkbox grid.row=\"3\" grid.column=\"0\" ischecked=\"True\" color=\"#8A2BFF\" horizontaloptions=\"Start\" verticaloptions=\"Center\"\/>\r\n \r\n<label grid.row=\"3\" grid.columnspan=\"2\" text=\"I Agree With The Terms And Conditions\" fontsize=\"12\" verticaloptions=\"Center\" margin=\"28,0,0,0\"\/> \r\n\r\n<button grid.row=\"4\" grid.columnspan=\"2\" text=\"Sign Up\" fontsize=\"16\" fontattributes=\"Bold\" textcolor=\"White\" backgroundcolor=\"#111111\" cornerradius=\"6\" heightrequest=\"52\"\/>\r\n<\/code><\/pre>\n<h3 id=\"social-networks\">Social Networks<\/h3>\n<pre class=\" language-xml\"><code class=\"prism  language-xml\"><horizontalstacklayout grid.row=\"5\" grid.columnspan=\"2\" spacing=\"12\" horizontaloptions=\"Center\" verticaloptions=\"Center\"> \r\n\r\n    <boxview heightrequest=\"1\" widthrequest=\"95\" color=\"#D8D8D8\" verticaloptions=\"Center\"\/>\r\n     \r\n    <label text=\"Or with\" fontsize=\"12\" verticaloptions=\"Center\"\/>\r\n     \r\n    <boxview heightrequest=\"1\" widthrequest=\"95\" color=\"#D8D8D8\" verticaloptions=\"Center\"\/> \r\n    \r\n<\/horizontalstacklayout> \r\n\r\n<button grid.row=\"6\" grid.column=\"0\" text=\"Facebook\" fontsize=\"12\" textcolor=\"#111111\" backgroundcolor=\"White\" bordercolor=\"#DDDDDD\" borderwidth=\"1\" cornerradius=\"8\" heightrequest=\"48\" imagesource=\"facebook.png\" contentlayout=\"Left,10\"\/> \r\n\r\n<button grid.row=\"6\" grid.column=\"1\" text=\"Google\" fontsize=\"12\" textcolor=\"#111111\" backgroundcolor=\"White\" bordercolor=\"#DDDDDD\" borderwidth=\"1\" cornerradius=\"8\" heightrequest=\"48\" imagesource=\"google.png\" contentlayout=\"Left,10\"\/>\r\n \r\n<label grid.row=\"7\" grid.column=\"0\" text=\"Already have an account?\" fontsize=\"12\" textcolor=\"#777777\" horizontaloptions=\"End\"\/> \r\n\r\n<label grid.row=\"7\" grid.column=\"1\" text=\"Sign In\" fontsize=\"12\" fontattributes=\"Bold\" textcolor=\"#111111\" textdecorations=\"Underline\" horizontaloptions=\"Start\" margin=\"4,0,0,0\"\/>\r\n<\/code><\/pre>\n<p>Once the layout and components are in place, the result should look like this:<\/p>\n<p><img decoding=\"async\" sf-image-responsive=\"true\" src=\"https:\/\/www.telerik.com\/sfimages\/default-source\/blogs\/2026\/2026-08\/03_-signup_screen.png?sfvrsn=9d87fe8f_2\" title=\"03_ signup_screen\" alt=\"2. SignUp Page\"\/><\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>I hope this article helps you understand how to recreate a modern UI from scratch using .NET MAUI. \ud83d\ude0e From building custom gradients with <strong>LinearGradientBrush<\/strong> and <strong>RadialGradientBrush<\/strong>, to structuring layouts with Grid, and creating a dynamic form using the <strong>Telerik DataForm,<\/strong> you now have a solid foundation to build clean and modern interfaces.<\/p>\n<p>The best part is that these are concepts you can easily reuse and adapt to your own projects to create more polished and visually appealing apps. \ud83d\udc9a<\/p>\n<p>If you have any questions or would like me to dive deeper into a specific part, feel free to leave a comment. I\u2019ll be happy to help!<\/p>\n<p>See you in the next article! \ud83d\ude4b\u200d\u2640\ufe0f\ud83d\ude80<\/p>\n<hr\/>\n<blockquote wp_automatic_readability=\"5.4084507042254\">\n<p>Remember, you can try Telerik UI for .NET MAUI free for 30 days.<\/p>\n<p><a rel=\"nofollow\" target=\"_blank\" target=\"_blank\" href=\"https:\/\/www.telerik.com\/try\/ui-for-maui\" data-sf-ec-immutable=\"\" class=\"Btn\">Try Now<\/a><\/p>\n<\/blockquote>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/www.telerik.com\/blogs\/building-onboarding-registration-ui-net-maui\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>See how to use LinearGradientBrush and RadialGradientBrush, structure grid layouts and create a dynamic form&#8230;<\/p>\n","protected":false},"author":1,"featured_media":437,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts\/436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/comments?post=436"}],"version-history":[{"count":0,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts\/436\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/media\/437"}],"wp:attachment":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/media?parent=436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/categories?post=436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/tags?post=436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}