Skip to content

Commit f8f682f

Browse files
authored
Merge branch 'main' into pooja/style-guide
2 parents 231c5b4 + e819f85 commit f8f682f

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 Indicators

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
@@ -51,7 +51,7 @@ Prefer “Items Spacing” set on the parent row or column instead of padding on
5151

5252
![listview-reverse.png](../built-in-widgets/imgs/listview-reverse.png)
5353

54-
#### Make List Reorderable
54+
### Reorderable List
5555
Whether to allow reordering of items in the list. On Web or Desktop this will
5656
add drag handles, but on mobile
5757
the reorder is triggerred by long pressing an item.
@@ -68,7 +68,7 @@ action trigger to make any necessary changes yourself.
6868

6969
Here's a quick tutorial to set up your Reorderable ListView:
7070

71-
##### Using App State variable
71+
#### Using App State variable
7272

7373
1. First, create an app state variable with a few items of type String and display them on the
7474
ListView widget.
@@ -120,7 +120,7 @@ return list;
120120
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>
121121

122122

123-
##### Reordering Items in a Firebase Query
123+
#### Reordering Items in a Firebase Query
124124

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

@@ -544,4 +544,4 @@ Follow the steps below to add this action to any widget.
544544
allow="clipboard-write">
545545
</iframe>
546546
</div>
547-
<p></p>
547+
<p></p>

0 commit comments

Comments
 (0)