Skip to content

Commit c61ab35

Browse files
authored
Merge branch 'main' into pooja/gen-code-pages-comp
2 parents 996415c + e819f85 commit c61ab35

File tree

3 files changed

+67
-11
lines changed

3 files changed

+67
-11
lines changed

docs/ff-concepts/design-system/design-system.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,47 @@ If you prefer watching a video tutorial, here is the guide for you:
196196
</div>
197197
<p></p>
198198

199+
## Use Library as Design System
200+
201+
You can also import a design system from the [Library](../../resources/projects/libraries.md) added to your project. A library can serve as a central repository for your design assets, components, and styles—effectively becoming a Design Library for your application(s).
202+
203+
:::tip[possible use cases]
204+
205+
- **Enterprise Applications:** Large organizations can develop a centralized design system as a library to ensure all internal applications maintain a cohesive look and feel, enhancing brand identity and user experience.
206+
- **Startup MVPs:** Startups can expedite the development of Minimum Viable Products (MVPs) by leveraging a pre-built design library like [**shadcn**](https://marketplace.flutterflow.io/item/cNlm0zWW1Nfq11cFXBmp), allowing them to focus on functionality and user validation.
207+
- **Cross-Platform Consistency:** Teams aiming to deploy apps across multiple platforms (iOS, Android, Web) can use a popular design system library to ensure uniformity in design, reducing the effort required for platform-specific adjustments.
208+
209+
:::
210+
211+
To add a design system from a library, first, ensure that you [add a library dependency to your project](../../resources/projects/libraries.md#importing-a-library). Then, navigate to **Theme Settings > Design System** and click on **No Design System Selected**. From the dropdown menu, **Select a library** you want to use.
212+
213+
214+
<div style={{
215+
position: 'relative',
216+
paddingBottom: 'calc(56.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
217+
height: 0,
218+
width: '100%'}}>
219+
<iframe
220+
src="https://demo.arcade.software/G3PekDcZNsWYrKoz3xnE?embed&show_copy_link=true"
221+
title=""
222+
style={{
223+
position: 'absolute',
224+
top: 0,
225+
left: 0,
226+
width: '100%',
227+
height: '100%',
228+
colorScheme: 'light'
229+
}}
230+
frameborder="0"
231+
loading="lazy"
232+
webkitAllowFullScreen
233+
mozAllowFullScreen
234+
allowFullScreen
235+
allow="clipboard-write">
236+
</iframe>
237+
</div>
238+
<p></p>
239+
199240
---
200241

201242
## Loading Indicator

docs/resources/projects/libraries.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ To publish a FlutterFlow project as a library, start by creating a FlutterFlow p
8585
When a project is converted into a library, the following features are disabled to ensure compatibility and functionality limitations:
8686

8787
- App settings
88-
- Firebase
8988
- Supabase
9089
- Development environments
9190
- Authentication
@@ -98,8 +97,6 @@ When a project is converted into a library, the following features are disabled
9897
- Google Analytics
9998
- OneSignal
10099
- Mux
101-
- Cloud functions
102-
- Firestore Collections
103100

104101
## Importing a Library
105102

@@ -318,6 +315,24 @@ To set library values, navigate to **Settings and Integrations > Project Setup >
318315
For different [**development environments**](../../testing-deployment-publishing/development-environments/development-environments.md) (e.g., development vs. production), you can bind Library Values to [**environment values**](../../testing-deployment-publishing/development-environments/development-environments.md#use-environment-values). For instance, you could have two different Library Values for an API key, such as `DEV_OPENAI_API_KEY` and `PROD_OPENAI_API_KEY`, and bind them to the development and production environments to track API usage separately.
319316
:::
320317

318+
## Libraries with Firebase
319+
You can create collections and enable various Firebase features in library projects without connecting a separate Firebase project.
320+
321+
In library projects, you won’t see an option to link to a Firebase project. Instead, the project that imports the library handles the actual Firebase connection.
322+
323+
Any indexes or security rules defined in the library are recognized by the importing project and deployed accordingly.
324+
325+
:::warning[Limitations]
326+
Libraries work with Firebase but have **some limitations**. The **Firebase Auth** and **Firebase Storage** are not directly supported in library projects at this time. If you need these features in your library’s functionality, you can include an action that accomplishes this task as a [**callback**](../../resources/ui/components/callbacks.md).
327+
:::
328+
329+
If your team has multiple projects that share a common Firebase feature, turning it into a library is a great idea. This ensures the same logic is used and connects to the same Firestore project across all apps.
330+
331+
Here are some examples of library projects you can build with Firebase:
332+
333+
- **Basic Analytics or Tracking**: A library that logs events to Firestore; useful for aggregating usage data at an application level.
334+
- **Configuration or Settings**: A library that serves app-wide configurations (like feature flags, UI themes, or layout choices) is handled in Firebase Remote Config.
335+
321336
## FAQs
322337

323338
<details>
@@ -328,16 +343,16 @@ Team code and API libraries will be migrated to library Projects. These projects
328343
</details>
329344

330345
<details>
331-
<summary>Will libraries work with Marketplace?</summary>
346+
<summary>Do libraries work with Marketplace?</summary>
332347
<p>
333-
We plan to allow users to import a marketplace project as a library, making it easier to integrate marketplace resources into your projects.
348+
Yes, you can add and import a Marketplace project as a library.
334349
</p>
335350
</details>
336351

337352
<details>
338-
<summary>How do libraries work with themes?</summary>
353+
<summary>How do libraries work with themes (design systems)?</summary>
339354
<p>
340-
The parent project's design system takes precedence over the imported library's design system. For example, if a library uses the standard FlutterFlow color scheme, the values defined in the parent project will override those in the library. However, if the library project has a custom color that the parent project does not have, it will be used as-is in the parent project.
355+
By default, the design system of the parent project takes precedence over the imported library's design system. If you want to use a library's design system, you must [**select or set the library in the Design System**](../../ff-concepts/design-system/design-system.md#use-library-as-design-system) page.
341356
</p>
342357
</details>
343358

docs/resources/ui/widgets/composing-widgets/list-grid.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Axis sets the orientation of the ListView. You can select either "Vertical" or
4747

4848
![listview-reverse.png](../built-in-widgets/imgs/listview-reverse.png)
4949

50-
#### Make List Reorderable
50+
### Reorderable List
5151
Whether to allow reordering of items in the list. On Web or Desktop this will
5252
add drag handles, but on mobile
5353
the reorder is triggerred by long pressing an item.
@@ -64,7 +64,7 @@ action trigger to make any necessary changes yourself.
6464

6565
Here's a quick tutorial to set up your Reorderable ListView:
6666

67-
##### Using App State variable
67+
#### Using App State variable
6868

6969
1. First, create an app state variable with a few items of type String and display them on the
7070
ListView widget.
@@ -116,7 +116,7 @@ return list;
116116
com/embed/bb961c71d11a4e7d8869170727d1423d?sid=a356162d-76df-45bb-930c-bebf8358ce6c" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
117117

118118

119-
##### Reordering Items in a Firebase Query
119+
#### Reordering Items in a Firebase Query
120120

121121
If you want to reorder the list items retrieved via Firebase query collection, the steps are almost similar except for the following changes.
122122

@@ -540,4 +540,4 @@ Follow the steps below to add this action to any widget.
540540
allow="clipboard-write">
541541
</iframe>
542542
</div>
543-
<p></p>
543+
<p></p>

0 commit comments

Comments
 (0)