diff --git a/docs/ff-concepts/adding-customization/cloud-functions.md b/docs/ff-concepts/adding-customization/cloud-functions.md index f7c923f1..d41a7886 100644 --- a/docs/ff-concepts/adding-customization/cloud-functions.md +++ b/docs/ff-concepts/adding-customization/cloud-functions.md @@ -59,9 +59,9 @@ loading indicator during the logo creation process. Its value is set to *True* b ### 2. Build a page -Let's add a page that allows users to enter the prompt. To speed up, you can add a page from the [template](/getting-started/adding-new-page#add-page) or use [AI Page Gen](/getting-started/adding-new-page#ai-gen-page). Here is the page added using AI Page Gen, and after some modification, it looks the below: +Let's add a page that allows users to enter the prompt. To speed up, you can add a page from the template or use [AI Page Gen](../../resources/ui/pages/pages.md#create-an-ai-generated-page). Here is the page added using AI Page Gen, and after some modification, it looks the below: -Also, see how to [build a page layout](/widgets-and-components/ui-and-layout-101) if you want to build a page from scratch. +Also, see how to [build a page layout](../../ff-concepts/layout/building-layout.md) if you want to build a page from scratch.  diff --git a/docs/ff-concepts/animations/animations.md b/docs/ff-concepts/animations/animations.md index 352b0d85..ecbade22 100644 --- a/docs/ff-concepts/animations/animations.md +++ b/docs/ff-concepts/animations/animations.md @@ -13,7 +13,7 @@ Enhancing your app with animations significantly improves the user experience, m - [**Implicit Animations**](implicit_animations.md): Animate changes in specific widget properties, such as the height of a Container. - [**Hero Animations**](hero_animations.md): Animate a widget that transitions smoothly between screens, also known as shared element transitions. - [**Page Transition Animations**](page_transitions.md): Specify transitions between pages within your app. -- **Import Animations**: Import animations you've created using other tools such [lottiefiles](import-animations/lottie-animation) and [Rive](import-animations/rive-animation). +- **Import Animations**: Import animations you've created using other tools such [lottiefiles](import-animations/lottie-animation.md) and [Rive](import-animations/rive-animation.md). To learn more about animations in FlutterFlow, check out this video: diff --git a/docs/ff-concepts/animations/page_transitions.md b/docs/ff-concepts/animations/page_transitions.md index 2331edc3..9994751e 100644 --- a/docs/ff-concepts/animations/page_transitions.md +++ b/docs/ff-concepts/animations/page_transitions.md @@ -27,7 +27,7 @@ Here, the transitions are recorded with the duration set to 1000ms to make the a ## Animate single navigate transition -To set a transition animation for a single navigate action, first, ensure that you have added a [**Navigate To**](../../resources/ui/pages/navigation#navigate-to-action) action and then select an animation from the **Transition Type** dropdown. By default, the animations use 300 milliseconds as the duration for which it plays but you can change it by specifying a value inside the **Duration** (ms) field. +To set a transition animation for a single navigate action, first, ensure that you have added a [**Navigate To**](../../ff-concepts/navigation-routing/page-navigation.md#navigate-to-action) action and then select an animation from the **Transition Type** dropdown. By default, the animations use 300 milliseconds as the duration for which it plays but you can change it by specifying a value inside the **Duration** (ms) field.  diff --git a/docs/ff-concepts/animations/widget_animations.md b/docs/ff-concepts/animations/widget_animations.md index 345f0a96..30a4c76f 100644 --- a/docs/ff-concepts/animations/widget_animations.md +++ b/docs/ff-concepts/animations/widget_animations.md @@ -208,7 +208,7 @@ If you notice carefully, the items appear in a staggered fashion. This can be ac Select the item in the list and add the Slide animation. -In the Delay property, open the variable menu and add a [code expression](#) to calculate the delay value based on the item's index. For this example, we use the formula `[index] * 100`, where `index` represents the position of the item, and `100` is the delay in milliseconds. This means the first item will slide in after 100 ms, the second after 200 ms, and so on, creating a staggered animation effect. +In the Delay property, open the variable menu and add a [code expression](../../resources/control-flow/functions/utility-functions.md#code-expressions) to calculate the delay value based on the item's index. For this example, we use the formula `[index] * 100`, where `index` represents the position of the item, and `100` is the delay in milliseconds. This means the first item will slide in after 100 ms, the second after 200 ms, and so on, creating a staggered animation effect.
Currently, creating a design system requires you to have a team set up, even if you're working solo. You can quickly create a team by following the instructions outlined [here](#). We are working on a solution that will allow for the creation of design systems without needing a team setup. Stay tuned for updates!
+Currently, creating a design system requires you to have a team set up, even if you're working solo. You can quickly create a team by following the instructions outlined [here](../../accounts-billing/subscriptions/flutterflow-for-teams.md). We are working on a solution that will allow for the creation of design systems without needing a team setup. Stay tuned for updates!
\ No newline at end of file diff --git a/docs/ff-concepts/layout/building-layout.md b/docs/ff-concepts/layout/building-layout.md index 20eb5c45..ae90fb86 100644 --- a/docs/ff-concepts/layout/building-layout.md +++ b/docs/ff-concepts/layout/building-layout.md @@ -9,7 +9,7 @@ keywords: [FlutterFlow, Building Layout, Concepts] # Building Layout -In FlutterFlow, you build a page layout using Widgets. **Widgets**, such as [Text](../../resources/ui/widgets/built-in-widgets/text.md), [Buttons](../../resources/ui/widgets/built-in-widgets/button.md), [Images](#), and [Icons](../../resources/ui/widgets/built-in-widgets/icons.md), are visible on the screen. Others, like [Containers](../../resources/ui/widgets/built-in-widgets/container.md), [Rows](#), [Columns](#), and [Stacks](#), are not directly visible but help arrange and position the visible elements on the page. +In FlutterFlow, you build a page layout using Widgets. **Widgets**, such as [Text](../../resources/ui/widgets/built-in-widgets/text.md), [Buttons](../../resources/ui/widgets/built-in-widgets/button.md), [Images](../../resources/ui/widgets/built-in-widgets/image.md), and [Icons](../../resources/ui/widgets/built-in-widgets/icons.md), are visible on the screen. Others, like [Containers](../../resources/ui/widgets/built-in-widgets/container.md), Rows, Columns, and Stacks, are not directly visible but help arrange and position the visible elements on the page. These widgets are categorized into four main types: [Layout Elements](/tags/layout-elements), [Base Elements](/tags/base-elements), [Page Elements](/tags/page-elements), and [Form Elements](/tags/form-elements). To build a page, you combine different widgets from these categories to get the desired look and feel of your app. diff --git a/docs/ff-concepts/layout/responsive-widgets/wrap-widget.md b/docs/ff-concepts/layout/responsive-widgets/wrap-widget.md index d3bd5101..33ad6b6a 100644 --- a/docs/ff-concepts/layout/responsive-widgets/wrap-widget.md +++ b/docs/ff-concepts/layout/responsive-widgets/wrap-widget.md @@ -9,13 +9,13 @@ keywords: [FlutterFlow, Wrap, Concepts] # Wrap -The Wrap widget is similar to [Row](#) and [Column](#) as it shows its children one after another. If there is not enough space to show your item, the Wrap widget will automatically place it in a new row or column. +The Wrap widget is similar to Row and Column as it shows its children one after another. If there is not enough space to show your item, the Wrap widget will automatically place it in a new row or column. ## Adding Wrap widget Here's an example of how you can use a Wrap widget in your project: -1. First, drag the [**Container**](#) widget from the **Layout Elements** tab (in the Widget Panel) or add it directly from the widget tree and set its **width** to **infinity** and **height** to **200**. +1. First, drag the [**Container**](../../../resources/ui/widgets/built-in-widgets/container.md) widget from the **Layout Elements** tab (in the Widget Panel) or add it directly from the widget tree and set its **width** to **infinity** and **height** to **200**. 2. Add the **Wrap** widget from the **Layout Elements** tab inside the Container. 3. Add the **Button** widget inside the Wrap widget. diff --git a/docs/ff-concepts/navigation-routing/deep-dynamic-linking.md b/docs/ff-concepts/navigation-routing/deep-dynamic-linking.md index 454a6d90..c1db8868 100644 --- a/docs/ff-concepts/navigation-routing/deep-dynamic-linking.md +++ b/docs/ff-concepts/navigation-routing/deep-dynamic-linking.md @@ -180,7 +180,7 @@ respective store to install the app. After the app is installed, users can be ta intended app page. For the dynamic link to work, you need to enable -the [deep link](/advanced-functionality/deep-and-dynamic-linking#deep-link). You can think of a +the [deep link](#adding-deep-link). You can think of a dynamic link as the additional benefit of the deep link. :::note diff --git a/docs/ff-concepts/navigation-routing/special-page-navigation/overview.md b/docs/ff-concepts/navigation-routing/special-page-navigation/overview.md index dcfa0234..ef9b94d5 100644 --- a/docs/ff-concepts/navigation-routing/special-page-navigation/overview.md +++ b/docs/ff-concepts/navigation-routing/special-page-navigation/overview.md @@ -11,5 +11,5 @@ keywords: [Special Page Navigations, FlutterFlow, Navigation] FlutterFlow provides special navigation widgets like Tab Bar, NavBar, and PageView for advanced navigation scenarios: - **Tab Bar**: Used for navigating between different sections of your app with tabs, ideal for organizing content into categories. Learn more [here](tabbar). -- **NavBar**: A bottom navigation bar that helps users switch between major sections of your app seamlessly. Learn more [here](#). -- **PageView**: Allows for swipeable pages, perfect for creating onboarding screens or multi-step forms. Learn more [here](#). \ No newline at end of file +- **NavBar**: A bottom navigation bar that helps users switch between major sections of your app seamlessly. Learn more [here](../../../resources/ui/pages/page-elements.md#nav-bar). +- **PageView**: Allows for swipeable pages, perfect for creating onboarding screens or multi-step forms. Learn more [here](../../navigation-routing/special-page-navigation/pageview-widget.md). \ No newline at end of file diff --git a/docs/ff-concepts/navigation-routing/special-page-navigation/pageview-widget.md b/docs/ff-concepts/navigation-routing/special-page-navigation/pageview-widget.md index 6441bd54..4e0d4b54 100644 --- a/docs/ff-concepts/navigation-routing/special-page-navigation/pageview-widget.md +++ b/docs/ff-concepts/navigation-routing/special-page-navigation/pageview-widget.md @@ -22,7 +22,7 @@ To add the PageView widget to your app: 2. By default, it adds three pages and shows the first one in the canvas. In the widget tree, it is represented as **PageView Page**. To see another page in the canvas, move to the **Properties Panel >** set the **Active Page** to the page you want to see. 3. To add a new page, move to the **Properties Panel > Active Page >** click **+ Add Page**. 4. To delete any page, select the **PageView Page** (which you want to delete) from the widget tree or the canvas area and press the **Delete** key on the keyboard. -5. By default, PageView Page contains an [Image](#) widget; however, you can customize it as per your requirement. For example, if you want to use the PageView widget to create an onboarding experience, you could wrap (`⌘` + B) the default image widget inside the [Stack](#) widget and then add some more widgets. +5. By default, PageView Page contains an [Image](../../../resources/ui/widgets/built-in-widgets/image.md) widget; however, you can customize it as per your requirement. For example, if you want to use the PageView widget to create an onboarding experience, you could wrap (`⌘` + B) the default image widget inside the Stack widget and then add some more widgets.
-1. First, ensure you have clicked the "Save" button while [Enabling phone authentication in Firebase](#).
+1. First, ensure you have clicked the "Save" button while [Enabling phone authentication in Firebase](#2-enabling-phone-authentication-in-firebase).

diff --git a/docs/ff-integrations/authentication/imgs/release-sha1-key.avif b/docs/ff-integrations/authentication/imgs/release-sha1-key.avif
new file mode 100644
index 00000000..0cd6a29d
Binary files /dev/null and b/docs/ff-integrations/authentication/imgs/release-sha1-key.avif differ
diff --git a/docs/ff-integrations/authentication/supabase-auth/email-supabase.md b/docs/ff-integrations/authentication/supabase-auth/email-supabase.md
index ef863ab6..40df9fb2 100644
--- a/docs/ff-integrations/authentication/supabase-auth/email-supabase.md
+++ b/docs/ff-integrations/authentication/supabase-auth/email-supabase.md
@@ -14,8 +14,8 @@ Supabase email authentication is a secure and easy way to allow users to sign up
:::info[Prerequisites]
Before getting started with this section, ensure you have,
-1. Completed all steps in the [Supabase setup](../../supabase/supabase-setup.md)
-2. Completed [Initial setup](initial-setup.md)
+1. Completed all steps in the [**Supabase setup**](../../supabase/supabase-setup.md)
+2. Completed [**Initial setup**](initial-setup.md)
required for authentication.
:::
@@ -51,7 +51,7 @@ Here's how you disable email verification on the Supabase side:
### Building pages
-Let's add a page that allows users to create accounts and log in. To speed up, you can add a page from the [template](/getting-started/adding-new-page#add-page). Here is the page added from the templates, and after some modification, it looks the below:
+Let's add a page that allows users to create accounts and log in. To speed up, you can add a page from the [template](../../../resources/ui/pages/pages.md#create-a-page-from-a-popular-template). Here is the page added from the templates, and after some modification, it looks the below:
Also, see how to build a page layout in case you want to build a page from scratch.
@@ -65,7 +65,7 @@ Now, you can proceed to add an account creation flow, which basically consists o
2. Supabase [Insert row action](../../database/supabase/database-actions.md#insert-row-action)
3. [Navigate](../../../ff-concepts/navigation-routing/nav-overview.md) action
-The first one creates an account in Supabase and adds an email and password in the "auth.users" table (i.e., *Protected schemas > schema auth*). However, this action does not create an entry in the "users" table you created [here](/data-and-backend/supabase/supabase-authentication/initial-setup#1.-creating-a-users-table). To do so, you need to add another action called Supabase *insert row* action with the user's details, such as email and profile_pic. Once the entry has been created, you can navigate to the home page using the navigate action.
+The first one creates an account in Supabase and adds an email and password in the "auth.users" table (i.e., *Protected schemas > schema auth*). However, this action does not create an entry in the "users" table you created [here](initial-setup.md#1-creating-a-users-table). To do so, you need to add another action called Supabase *insert row* action with the user's details, such as email and profile_pic. Once the entry has been created, you can navigate to the home page using the navigate action.
Here's how it looks:
diff --git a/docs/ff-integrations/authentication/supabase-auth/initial-setup.md b/docs/ff-integrations/authentication/supabase-auth/initial-setup.md
index d1e63984..229b0a9c 100644
--- a/docs/ff-integrations/authentication/supabase-auth/initial-setup.md
+++ b/docs/ff-integrations/authentication/supabase-auth/initial-setup.md
@@ -52,7 +52,6 @@ To enable authentication in FlutterFlow:
3. Turn on the **Enable Authentication** toggle and select **Authentication Type** to **Supabase**.
-4. To ensure that your users are directed to the appropriate pages based on their login status,
- you must set the [initial pages](/settings-and-integrations/general-settings/app-details#initial-page).
+4. To ensure that your users are directed to the appropriate pages based on their login status, you must set the [initial pages](../../../resources/projects/settings/general-settings.md#initial-page).

\ No newline at end of file
diff --git a/docs/ff-integrations/database/cloud-firestore/firebase-content-manager.md b/docs/ff-integrations/database/cloud-firestore/firebase-content-manager.md
index 16dd3112..5faea612 100644
--- a/docs/ff-integrations/database/cloud-firestore/firebase-content-manager.md
+++ b/docs/ff-integrations/database/cloud-firestore/firebase-content-manager.md
@@ -189,8 +189,7 @@ com/embed/1f0d58f3d1f64f6ab5e40fe34d49fc39?sid=de5cd66e-2b99-4fea-8fb1-8c5eb2c50
### Multiple Items
-To store the multiple items of the same data type, For example, a list of Fruit names, make sure
-you have a Field with **Data Type** set to any from [this](/data-and-backend/firebase/firestore-database-cloud-firestore/creating-collections#data-types-within-flutterflow) and **Field Type** set to **List**.
+To store the multiple items of the same data type, For example, a list of Fruit names, make sure you have a Field with **Data Type** set and **Field Type** set to **List**.
The field looks like this:
diff --git a/docs/ff-integrations/database/cloud-firestore/firestore-actions.md b/docs/ff-integrations/database/cloud-firestore/firestore-actions.md
index 94f09e04..95647263 100644
--- a/docs/ff-integrations/database/cloud-firestore/firestore-actions.md
+++ b/docs/ff-integrations/database/cloud-firestore/firestore-actions.md
@@ -241,7 +241,7 @@ By enabling Firestore batch write, you can group multiple operations and send th
Suppose you have an e-commerce application, and after a successful order, you need to update the product inventory count and create a new document in the 'orders' collection. Using a batch write, you can combine these operations and execute them together to ensure data consistency.
-To enable Firestore batch write, you must have multiple Firestore ([any combination of)](#)
+To enable Firestore batch write, you must have multiple Firestore any combination of
actions; inside the action editor, at the top right side, enable **Batch Firestore Writes**.