diff --git a/docs/accounts-billing/privacy-terms-of-service.md b/docs/accounts-billing/privacy-terms-of-service.md index 0adeadbc..2e956362 100644 --- a/docs/accounts-billing/privacy-terms-of-service.md +++ b/docs/accounts-billing/privacy-terms-of-service.md @@ -12,7 +12,7 @@ To request deletion of your personal data, please reach out to our support team To unsubscribe from FlutterFlow emails, please click the “Unsubscribe” link in the footer of our emails. ### Where can I view your Privacy Policy? -You can review the most recent version of our Privacy Policy here. +You can review the most recent version of our Privacy Policy [on the website](https://www.flutterflow.io/privacy). ### Where can I view your Terms of Service (ToS)? -You can review the most recent version of our Terms of Service here. \ No newline at end of file +You can review the most recent version of our Terms of Service [linked on the website](https://www.flutterflow.io/tos). \ No newline at end of file diff --git a/docs/accounts-billing/subscriptions/more-subscription-faqs.md b/docs/accounts-billing/subscriptions/more-subscription-faqs.md index b3d452a3..bc0b4947 100644 --- a/docs/accounts-billing/subscriptions/more-subscription-faqs.md +++ b/docs/accounts-billing/subscriptions/more-subscription-faqs.md @@ -1,4 +1,7 @@ - +--- +toc_max_heading_level: 5 +sidebar_position: 2 +--- # Other Subscription Questions diff --git a/docs/accounts-billing/refund.md b/docs/accounts-billing/subscriptions/refund.md similarity index 88% rename from docs/accounts-billing/refund.md rename to docs/accounts-billing/subscriptions/refund.md index b854f0f8..4c4dde27 100644 --- a/docs/accounts-billing/refund.md +++ b/docs/accounts-billing/subscriptions/refund.md @@ -8,6 +8,6 @@ sidebar_position: 4 # Refunds -If you're not happy with your FlutterFlow subscription, you can [cancel at any time](subscriptions/subscriptions.md#cancel-my-plan). +If you're not happy with your FlutterFlow subscription, you can [cancel at any time](./subscriptions.md#cancel-my-plan). However, there are no refunds for cancellation. In the event that the Company suspends or terminates your Account or these Terms, you understand and agree that you shall receive no refund, whether for any unused time on a subscription, any license or subscription fees for any portion of the Service, any content or data associated with your User Account, or for anything else. \ No newline at end of file diff --git a/docs/accounts-billing/subscriptions/subscriptions.md b/docs/accounts-billing/subscriptions/subscriptions.md index 5f95d27a..92d69db2 100644 --- a/docs/accounts-billing/subscriptions/subscriptions.md +++ b/docs/accounts-billing/subscriptions/subscriptions.md @@ -3,7 +3,7 @@ slug: subscriptions title: Subscriptions tags: [] toc_max_heading_level: 5 -sidebar_position: 3 +sidebar_position: 0 --- diff --git a/docs/index.md b/docs/index.md index 60e45d8a..e7c4b109 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,7 +4,7 @@ custom_edit_url: null showLastUpdateTime: false hide_title: true slug: / -hide_table_of_contents: true +hide_table_of_contents: false --- import InfoCard from '@site/src/components/InfoCard'; @@ -20,25 +20,140 @@ import BranchIcon from '@site/static/icons/branch_New.png'; - -# Visual Development Environment -FlutterFlow is a visual development environment that lets you build mobile, web, and desktop apps incredibly fast, without sacrificing quality or features. +# Getting Started with FlutterFlow +FlutterFlow is a visual development environment that lets you build mobile, web, and desktop apps incredibly fast, without sacrificing on app quality or features. + -
- - - - - - + + +

+ +

### FlutterFlow Tour -
\ No newline at end of file + + + + + + + + + +

+ +
+ + + + + + +### Best Practices + +Essential guidelines and recommendations for building robust FlutterFlow applications. Discover security best practices and performance optimization techniques to ensure your apps are production-ready, scalable, and maintainable. + + + + + + + +### Scaling FlutterFlow Apps + +Learn advanced techniques and strategies to scale your FlutterFlow applications from simple prototypes to enterprise-grade solutions with native integrations and modular architecture. + + + + + + + +### Additional Tools + +Discover additional tools and references to enhance your FlutterFlow development experience: + + + + + + +## Still Have Problems? + +If you're still experiencing issues or need additional help, here are some resources to get you back on track: + +- **[Submit Bug Report](/misc/submit-bug-report)** - Report bugs or issues you've encountered +- **[Community Forum](https://community.flutterflow.io)** - Ask questions and get help from the community +- **[Reddit Community](https://www.reddit.com/r/FlutterFlow/)** - Join discussions on Reddit +- **[Documentation Bug](https://github.com/FlutterFlow/flutterflow-documentation/issues)** - Report documentation issues +- **[Contribute to Documentation](https://github.com/FlutterFlow/flutterflow-documentation?tab=readme-ov-file#how-to-contribute)** - Contribution guidelines for contributing to the FlutterFlow documentation site. +- **[FlutterFlow Support](mailto:support@flutterflow.io)** - Get direct support from the FlutterFlow support team. \ No newline at end of file diff --git a/docs/marketplace/creators-hub/creators-hub.md b/docs/marketplace/creators-hub/creators-hub.md index 638e8b0f..0a7f08f9 100644 --- a/docs/marketplace/creators-hub/creators-hub.md +++ b/docs/marketplace/creators-hub/creators-hub.md @@ -10,11 +10,11 @@ keywords: [FlutterFlow, MarketPlace, Creators Hub] # Creators Hub Welcome to the FlutterFlow Marketplace Creators' Hub! This section is designed to provide you with all the necessary information to contribute effectively and responsibly to Marketplace. Whether you are submitting your first item or looking to understand the legal nuances, you'll find detailed guidelines and helpful tips here. -### **Submitting an Item for Review** +### Submitting an Item for Review - Understand the [criteria](submission-criteria.md) we apply to items submitted to Marketplace. - Learn how to prepare and [submit](submit-item-for-review.md) your items to the Marketplace with our step-by-step guide. -### **Legal Guidelines for Creators** +### Legal Guidelines for Creators A user-friendly [guide](legal-guidelines-for-creators.md) outlining what content can and cannot be published on our Marketplace. diff --git a/docs/marketplace/creators-hub/submission-criteria.md b/docs/marketplace/creators-hub/submission-criteria.md index 51c62d91..29f22c6b 100644 --- a/docs/marketplace/creators-hub/submission-criteria.md +++ b/docs/marketplace/creators-hub/submission-criteria.md @@ -396,7 +396,7 @@ Stay tuned for an upcoming "style guide" we're publishing that goes into deeper - **Criteria:** Projects should include automated tests that verify core functionality and key user workflows. While not required for approval, this is strongly recommended for libraries and will positively impact visibility. - **Why It Matters:** Automated tests help ensure reliability, catch regressions, and demonstrate your commitment to quality. They also improve your item's visibility. - **What To Do:** - - **Add Integration Tests:** Use FlutterFlow's [automated testing](../../testing-deployment-publishing/testing/automated-tests.md) features to verify your item's core functionality. + - **Add Integration Tests:** Use FlutterFlow's [automated testing](../../testing-deployment-publishing/running-your-app/automated-tests.md) features to verify your item's core functionality. - **Test Key Workflows:** Focus on testing critical user paths and features that users will rely on. - **For Libraries:** Since libraries are often used as building blocks in larger applications, thorough testing is particularly important to: - Verify that Library Values are properly implemented diff --git a/docs/resources/ui/widgets/widget-commonalities.md b/docs/resources/ui/widgets/widget-commonalities.md index 748331e6..6e085a1d 100644 --- a/docs/resources/ui/widgets/widget-commonalities.md +++ b/docs/resources/ui/widgets/widget-commonalities.md @@ -172,7 +172,7 @@ Values beyond this range will push the widget outside the visible screen area. ## Add Testing Value Key -A **Value Key** is used to uniquely identify widgets during [**Automated Testing**](../../../testing-deployment-publishing/testing/automated-tests.md) in FlutterFlow. For example, on a Create Account page, you might use descriptive keys like `signupFirstNameField`, `signupEmailField`, `signupPasswordField`, and `signupSubmitButton`. This helps testing tools reliably locate and interact with the correct widgets. For more details, refer to the [complete guide here](../../../testing-deployment-publishing/testing/automated-tests.md). +A **Value Key** is used to uniquely identify widgets during [**Automated Testing**](../../../testing-deployment-publishing/running-your-app/automated-tests.md) in FlutterFlow. For example, on a Create Account page, you might use descriptive keys like `signupFirstNameField`, `signupEmailField`, `signupPasswordField`, and `signupSubmitButton`. This helps testing tools reliably locate and interact with the correct widgets. For more details, refer to the [complete guide here](../../../testing-deployment-publishing/running-your-app/automated-tests.md). ![test-value-keys.avif](imgs/test-value-keys.avif) diff --git a/docs/testing-deployment-publishing/publishing/pre-checks-publishing.md b/docs/testing-deployment-publishing/publishing/pre-checks-publishing.md index 063b6917..f4d3b254 100644 --- a/docs/testing-deployment-publishing/publishing/pre-checks-publishing.md +++ b/docs/testing-deployment-publishing/publishing/pre-checks-publishing.md @@ -13,7 +13,7 @@ This page outlines the important steps and checks to be made before publishing y Here’s a comprehensive list of these prechecks: -1. **Functionality Testing**: Test the app manually across devices. You can also implement integration tests using FlutterFlow’s [**Automated Tests**](../testing/automated-tests.md) framework to cover various scenarios. +1. **Functionality Testing**: Test the app manually across devices. You can also implement integration tests using FlutterFlow’s [**Automated Tests**](../running-your-app/automated-tests.md) framework to cover various scenarios. 2. **Get Feedback**: Run your app in Run Mode to generate a shareable link to the session. You can share these links to gather feedback from users and testers, providing valuable insights and potential areas of improvement before the public release. 3. **Optimizations & Enhancements**: Improve performance by implementing [optimization and enhancement](../../intro/ff-ui/toolbar.md#project-suggestions) suggestions. Ensure that images are properly sized, consider using higher compression for assets, and remove unused assets and custom widgets. These will help improve your app's speed and size. diff --git a/docs/testing-deployment-publishing/running-your-app/_category_.json b/docs/testing-deployment-publishing/running-your-app/_category_.json index 97aee821..8ec2edd2 100644 --- a/docs/testing-deployment-publishing/running-your-app/_category_.json +++ b/docs/testing-deployment-publishing/running-your-app/_category_.json @@ -1,4 +1,4 @@ { - "label": "Running your App", + "label": "Testing your app", "position": 3 } \ No newline at end of file diff --git a/docs/testing-deployment-publishing/testing/automated-tests.md b/docs/testing-deployment-publishing/running-your-app/automated-tests.md similarity index 99% rename from docs/testing-deployment-publishing/testing/automated-tests.md rename to docs/testing-deployment-publishing/running-your-app/automated-tests.md index 391c42bf..63db25c3 100644 --- a/docs/testing-deployment-publishing/testing/automated-tests.md +++ b/docs/testing-deployment-publishing/running-your-app/automated-tests.md @@ -3,7 +3,7 @@ slug: /testing/automated-tests title: Automated Tests description: Discover how to effectively utilize automated testing in FlutterFlow to ensure your app performs as intended. tags: [Automated Tests, Testing] -sidebar_position: 0 +sidebar_position: 2 keywords: [Automated Tests, Testing, FlutterFlow] --- diff --git a/docs/testing-deployment-publishing/testing/_category_.json b/docs/testing-deployment-publishing/testing/_category_.json deleted file mode 100644 index c920a2e3..00000000 --- a/docs/testing-deployment-publishing/testing/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Testing", - "position": 4 - } \ No newline at end of file diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 7d77f7b4..0cf93486 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -25,13 +25,15 @@ const config: Config = { 'classic', { docs: { - breadcrumbs: false, + breadcrumbs: true, routeBasePath: '/', sidebarPath: './sidebars.ts', editUrl: 'https://github.com/FlutterFlow/flutterflow-documentation/edit/main/', showLastUpdateAuthor: true, showLastUpdateTime: true, exclude: ['docs/index.md'], + sidebarCollapsible: true, /* Keep sidebar expanded by default */ + sidebarCollapsed: true, /* Start with sidebar expanded */ // lastVersion: 'current', // versions: { // current: { diff --git a/firebase.json b/firebase.json index 43f0190d..bb6cde71 100644 --- a/firebase.json +++ b/firebase.json @@ -2401,7 +2401,7 @@ { "source": "/concepts/custom-code/custom-files", "destination": "/concepts/custom-code/configuration-files", - "type": 301 + "type": 301 }, { "source": "/marketplace/creators-hub/submit-item-for-reivew", @@ -2417,6 +2417,11 @@ "source": "/configuring-cors-for-firebase-storage", "destination": "/troubleshooting/firebase/configuring-cors-for-firebase-storage", "type": 301 + }, + { + "source": "/accounts-billing/refunds", + "destination": "/accounts-billing/subscriptions/refunds", + "type": 301 } ] } diff --git a/sidebars.ts b/sidebars.ts index 2a0d47de..25f953dc 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -16,7 +16,7 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Before You Begin', - collapsed: true, + collapsed: false, items: [ { type: 'autogenerated', @@ -27,7 +27,7 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'FlutterFlow Platform', - collapsed: true, + collapsed: false, items: [ { type: 'autogenerated', @@ -38,7 +38,7 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Resources', - collapsed: true, + collapsed: false, link: { type: 'generated-index', title: 'FlutterFlow Resources', @@ -56,7 +56,7 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Building Concepts', - collapsed: true, + collapsed: false, link: { type: 'generated-index', title: 'Key Concepts', @@ -74,7 +74,7 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Testing & Publishing', - collapsed: true, + collapsed: false, items: [ { type: 'autogenerated', @@ -85,7 +85,7 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Integrations', - collapsed: true, + collapsed: false, link: { type: 'generated-index', title: 'Third Party Integrations', @@ -103,7 +103,7 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Generated Code', - collapsed: true, + collapsed: false, items: [ { type: 'autogenerated', @@ -114,7 +114,7 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Accounts & Billing', - collapsed: true, + collapsed: false, items: [ { type: 'autogenerated', @@ -125,7 +125,7 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Miscellaneous', - collapsed: true, + collapsed: false, items: [ { type: 'autogenerated', diff --git a/src/components/Feedback/index.js b/src/components/Feedback/index.js index 1b6fdee7..b22d8ba4 100644 --- a/src/components/Feedback/index.js +++ b/src/components/Feedback/index.js @@ -52,9 +52,9 @@ const Feedback = () => { alignItems: 'center', justifyContent: 'center', cursor: 'pointer', - color: feedback === 'thumbs_up' ? 'var(--ifm-color-primary)' : 'gray', - backgroundColor: '#f0f0f0', - border: '1px #f0f0f0', + color: feedback === 'thumbs_up' ? 'var(--ifm-color-primary)' : 'var(--ifm-text-color)', + backgroundColor: 'var(--ifm-background-color)', + border: '1px solid var(--ifm-border-color)', borderRadius: '8px', padding: '10px 20px', fontSize: '16px', @@ -71,9 +71,9 @@ const Feedback = () => { alignItems: 'center', justifyContent: 'center', cursor: 'pointer', - color: feedback === 'thumbs_down' ? 'var(--ifm-color-primary)' : 'gray', - backgroundColor: '#f0f0f0', - border: '1px #f0f0f0', + color: feedback === 'thumbs_down' ? 'var(--ifm-color-primary)' : 'var(--ifm-text-color)', + backgroundColor: 'var(--ifm-background-color)', + border: '1px solid var(--ifm-border-color)', borderRadius: '8px', padding: '10px 20px', fontSize: '16px', @@ -94,7 +94,9 @@ const Feedback = () => { width: '100%', height: '100px', padding: '10px', - borderColor: 'lightgray', + borderColor: 'var(--ifm-border-color)', + backgroundColor: 'var(--ifm-background-color)', + color: 'var(--ifm-text-color)', borderRadius: '8px', fontFamily: 'var(--ifm-font-family-base)', }} diff --git a/src/components/InfoCard/index.module.css b/src/components/InfoCard/index.module.css index 8c870802..38c34ec4 100644 --- a/src/components/InfoCard/index.module.css +++ b/src/components/InfoCard/index.module.css @@ -1,57 +1,94 @@ .infoCard { - border: var(--border); - border-radius: 4px; - padding: 30px; - transition: background-color 0.3s, box-shadow 0.3s; - box-sizing: border-box; /* Ensures padding is included in width/height */ - box-shadow: none; /* Initial shadow */ + border: 1px solid var(--ifm-color-emphasis-100); + border-radius: 8px; + padding: 24px; + transition: all 0.3s ease; + box-sizing: border-box; + background: var(--custom-background-light); + cursor: pointer; + height: 100%; + display: flex; + flex-direction: column; +} + +.largeCard { + grid-column: span 2; /* Makes the card span 2 columns */ } -@media (max-width: 768px) { /* For landscape phones and smaller tablets */ +@media (max-width: 768px) { .infoCard { - padding: 20px; /* Smaller padding on smaller screens */ + padding: 20px; + } + + .largeCard { + grid-column: span 1; /* Reset on mobile */ } } .infoCard:hover { - border: var(--selected-border); /* Keep the initial border */ - box-shadow: 0 4px 8px rgba(255, 255, 255, 0.8); /* Elevation effect for light mode */ + border-color: var(--ifm-color-primary); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + transform: translateY(-2px); } @media (prefers-color-scheme: dark) { + .infoCard { + border-color: var(--card-border-light 100%); + } + .infoCard:hover { - box-shadow: 0 4px 8px rgba(255, 255, 255, 0.2); /* Elevation effect for dark mode */ + border-color: var(--ifm-color-primary); + box-shadow: 0 4px 12px rgba(255, 255, 255, 0.1); } } +/* Dark mode background */ +[data-theme='dark'] .infoCard { + background: var(--custom-background-dark); +} + .infoCardIcon { font-size: 24px; - margin-bottom: 10px; + margin-right: 12px; + color: var(--ifm-color-primary); + display: flex; + align-items: center; } .infoCardTitle { - font-weight: bold; - font-size: 20px; + font-weight: 600; + font-size: 18px; + color: var(--ifm-color-primary); + margin: 0; } .titleContainer { display: flex; align-items: center; - padding-bottom: 20px; + margin-bottom: 16px; } .logo { - height: 1.5em; /* 1em typically equals the font-size of the parent, which is the h2 in this case */ + height: 1.5em; padding-right: 10px; - width: auto; /* Maintain the aspect ratio of the image */ + width: auto; +} + +.infoCardDescription { + color: var(--ifm-color-content); + font-size: 14px; + line-height: 1.5; + margin: 0; + flex-grow: 1; } .infoCardLink { - display: flex; - color: var(--primary-texr); + display: block; + color: inherit; + text-decoration: none; } .infoCardLink:hover { - color: var(--primary-texr); + color: inherit; text-decoration: none; } \ No newline at end of file diff --git a/src/components/InfoCard/index.tsx b/src/components/InfoCard/index.tsx index 6f286fa0..4ecbbf43 100644 --- a/src/components/InfoCard/index.tsx +++ b/src/components/InfoCard/index.tsx @@ -1,16 +1,24 @@ import React from 'react'; import styles from './index.module.css'; +interface InfoCardProps { + icon?: string; + title: string; + description: string; + pagePath: string; + isLarge?: boolean; +} -const InfoCard = ({ icon, title, description, pagePath })=> { +const InfoCard = ({ icon, title, description, pagePath, isLarge = false }: InfoCardProps) => { + console.log('InfoCard:', title, 'isLarge =', isLarge); + return ( - {/* Link the card */} -
-
+ +
+ {icon &&
{icon}
}
{title}
+
{description}
-
{description}
-
); }; diff --git a/src/css/custom.css b/src/css/custom.css index 4a3eced3..6ec11a7c 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -15,6 +15,67 @@ --ifm-menu-color-active: var(--ifm-color-primary-darker) !important; --inline-code-bg-color: #fafafa; /* Light mode background */ --inline-code-text-color: #aa54bf; /* Light mode text color */ + + /* Custom background colors for main site and cards */ + --custom-background-light: rgba(255, 255, 255, 0.95); + --custom-background-dark: rgba(10, 9, 9, 1); + + --ifm-card-text-color: #333333; + --ifm-card-background-color: #000171717; + --ifm-border-color: #cdcdcd; /* Border color */ + --ifm-background-color: #f5f5f5; /* Dark background color */ + + /* Sidebar color variables for both themes */ + --sidebar-level1-color: #333333; /* Dark color for light mode level 1 */ + --sidebar-level2-color: #6b6b6b; /* Medium gray for light mode level 2 */ + --sidebar-level3-color: #6b6b6b; /* Light gray for light mode level 3 */ + + /* Sidebar selected/active state variables */ + --sidebar-selected-text-color: var(--sidebar-level1-color); /* Use level 1 color for selected text */ + --sidebar-selected-bg-color: rgba(239, 136, 57, 0.95); /* More visible purple background for light mode */ + --sidebar-hover-bg-color: rgba(75, 57, 239, 0.95); /* More visible hover background for light mode */ + --ifm-color-emphasis-100: #ebebeb; +} + + +/* Direct body text styling that will override Docusaurus */ +body { + color: #d7d7d7 !important; +} + +/* Light mode body text */ +[data-theme='light'] body { + color: #333333 !important; /* Dark text for light mode */ +} + +/* Dark mode body text */ +[data-theme='dark'] body { + color: #d7d7d7 !important; +} + +/* Global background pattern for all pages */ +html { + background-image: url('/img/grid-pattern.png'); + background-repeat: no-repeat; + background-attachment: scroll; + background-size: 500px 500px; + background-position: calc(100% - 20px) 20px; + background-color: transparent; + position: relative; +} + + +/* Light mode background with opacity */ +html[data-theme='light'] { + background-color: var(--custom-background-light); + background-blend-mode: multiply; +} + +/* Dark mode background with opacity */ +html[data-theme='dark'] { + background-color: var(--custom-background-dark); + background-image: url('/img/grid-pattern-dark.png'); + /* background-blend-mode: soft-light; */ } html[data-theme='dark'] { @@ -31,6 +92,20 @@ html[data-theme='dark'] { --ifm-color-primary-lighter: #6050f6; /* Even lighter shade for backgrounds (Adjusted) */ --ifm-color-primary-lightest: #6c5cfa; /* Lightest primary shade (Adjusted) */ --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); /* Line highlighting in code */ + /* Appbar background using our custom variable */ + --ifm-navbar-background-color: var(--custom-background-light); + --ifm-card-border-color: var(--ifm-color-primary); + + /* Text colors for light mode */ + --ifm-text-color: #2b2b2b; /* Primary text color */ + --ifm-text-secondary-color: #666666; /* Secondary text color */ + +} + +h1 { + font-size: 2.5rem !important; /* Adjust this value as needed */ + font-weight: 700; + line-height: 1.2; } [data-theme='dark'] { @@ -47,14 +122,133 @@ html[data-theme='dark'] { --ifm-background-secondary-color: #2a2a2a; /* Slightly lighter background for contrast */ --ifm-background-code-color: #2a2a2a; /* Background for code blocks */ --ifm-background-code-line-color: #333; /* Background for highlighted lines in code blocks */ - --ifm-text-color: #e0e0e0; /* Primary text color */ - --ifm-text-secondary-color: #c0c0c0; /* Secondary text color */ + --ifm-text-color: #dfdfdf; /* Primary text color */ + --ifm-text-secondary-color: #ffffff; /* Secondary text color */ + --ifm-text-sidebar-text-color: #888888; /* Secondary text color */ + --ifm-border-color: #444; /* Border color */ --ifm-hover-color: #555; /* Hover color for interactive elements */ --docusaurus-highlighted-code-line-bg: rgba(255, 255, 255, 0.1); --inline-code-bg-color: #464752; /* Dark mode background */ --inline-code-text-color: #eca1ff; /* Dark mode text color */ + + /* Appbar background using our custom variable */ + --ifm-navbar-background-color: var(--custom-background-dark); + --ifm-card-border-color: var(--ifm-color-primary); + --ifm-card-text-color: #ffffff; + + /* Dark mode sidebar color variables */ + --sidebar-level1-color: #ffffff; /* White color for dark mode level 1 */ + --sidebar-level2-color: var(--ifm-text-sidebar-text-color); /* Custom sidebar text color for dark mode level 2 */ + --sidebar-level3-color: var(--ifm-text-sidebar-text-color); /* Custom sidebar text color for dark mode level 3 */ + + } + +/* Card hover effects */ +.card:hover { + border-color: var(--ifm-card-border-color) !important; + transform: translateY(-2px) !important; + transition: transform 0.2s ease !important; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important; +} + +[data-theme='dark'] .card:hover { + border-color: var(--ifm-card-border-color) !important; + box-shadow: 0 4px 12px rgba(255, 255, 255, 0.1) !important; } + + + +/* Level 1: Main category headers (only the top level) */ +.menu__list-item:first-child .menu__link--sublist, +.menu__list-item .menu__link--sublist:first-child { + color: var(--sidebar-level1-color) !important; /* Uses theme-appropriate color */ + font-weight: 600; +} + +/* Level 2: Sub-category items (items within categories) */ +.menu__list-item .menu__list-item .menu__link--sublist { + color: var(--sidebar-level2-color) !important; /* Uses theme-appropriate color */ + font-weight: 500; +} + +/* Level 3: Individual page links (deepest level) - using the correct class */ +.menu__list-item .menu__list-item .menu__list-item a.menu__link { + color: var(--sidebar-level3-color) !important; /* Uses theme-appropriate color */ + font-weight: 500; +} + +/* Also target individual page links that might be at different nesting levels */ +a.menu__link { + color: var(--sidebar-level3-color) !important; /* Uses theme-appropriate color */ + font-weight: 500; +} + +.theme-doc-sidebar-menu + > li.theme-doc-sidebar-item-link-level-1:not(.theme-doc-sidebar-item-category):nth-of-type(-n+4) + > a.menu__link { color: var(--sidebar-level1-color) !important; + font-weight: 600 !important; + } + +/* Selected/Active state styling for all sidebar items */ +.menu__link--active, +.menu__link--sublist--active { + color: var(--ifm-text-sidebar-text-color) !important; /* Selected text color */ + font-weight: 600 !important; +} + + +/* Target parent categories when they contain the active page */ +.menu__list-item--active .menu__link--sublist { + color: var(--ifm-text-sidebar-text-color) !important; /* Selected text color */ + background-color: var(--sidebar-selected-bg-color) !important; /* Selected background color */ + font-weight: 600 !important; +} + + + + +/* Hover state styling for all sidebar items */ +.menu__link:hover, +.menu__link--sublist:hover { + transition: background-color 0.2s ease; /* Smooth transition */ +} + +.menu__caret:before, +.menu__link--sublist-caret:after { + background: var(--ifm-menu-link-sublist-icon) 50% / 1.5rem 1.5rem; +} + + +/* Even more general sidebar text targeting */ +.theme-doc-sidebar-container * { + font-size: 14px !important; +} + +/* Add spacing between parent sidebar categories */ +.theme-doc-sidebar-item-category-level-1 { + margin-bottom: 0.5rem !important; /* Space between main categories */ + padding-bottom: 1rem !important; /* Internal padding */ +} + +/* Special spacing for troubleshooting section */ +.theme-doc-sidebar-item-category-level-1:has(.menu__link[href*="troubleshooting"]) { + padding-bottom: 0px !important; /* Reduced padding for troubleshooting */ +} + +/* Add space after the last category */ +.theme-doc-sidebar-item-category-level-1:last-child { + margin-bottom: 0 !important; /* No margin after the last category */ +} + +/* Add space between sub-items within each category */ +.theme-doc-sidebar-item-category-level-2, +.theme-doc-sidebar-item-link-level-3 { + margin-bottom: 0rem !important; /* Space between sub-items */ +} + + + .small-image { width: 400px; height: auto; @@ -234,4 +428,77 @@ code { .navbar-flutterflow-button:hover { background-color: #3B39EFFF; /* Slightly darker purple on hover */ -} \ No newline at end of file +} + +.theme-doc-sidebar-container { + border-right: none !important; + box-shadow: none !important; +} + +.navbar { + border-bottom: none !important; + box-shadow: none !important; +} + + +/* Sidebar font sizes for all levels */ +.theme-doc-sidebar-container { + font-size: 14px !important; /* Base font size for sidebar */ +} + +/* Level 1 (Parent categories) */ +.theme-doc-sidebar-item-category-level-1 .menu__link--sublist, +.theme-doc-sidebar-item-category-level-1 > .menu__list-item > .menu__link--sublist { + font-size: 14px !important; /* Larger for main categories */ + font-weight: 600 !important; +} + +/* Level 2 (Subcategories) */ +.theme-doc-sidebar-item-category-level-2 .menu__link--sublist, +.theme-doc-sidebar-item-category-level-2 > .menu__list-item > .menu__link--sublist { + font-size: 14px !important; /* Medium for subcategories */ + font-weight: 500 !important; +} + +/* Level 3 (Individual pages) */ +.theme-doc-sidebar-item-link-level-3 .menu__link, +.menu__list-item .menu__list-item .menu__link { + font-size: 13px !important; /* Smaller for individual pages */ + font-weight: 400 !important; +} + +/* All sidebar links general sizing */ +.menu__link, +.menu__link--sublist { + font-size: 14px !important; /* Default size for all sidebar links */ +} + +/* Caret icon sizing */ +.menu__caret:before, +.menu__link--sublist-caret:after { + background: var(--ifm-menu-link-sublist-icon) 50% / 1.5rem 1.5rem; +} + +/* Different padding for different sidebars */ + +/* Main Documentation Sidebar */ +.theme-doc-sidebar-container { + padding: 10px !important; /* Default padding for main docs */ +} + +/* Marketplace Sidebar - target by URL or specific class */ +[data-theme='light'] .theme-doc-sidebar-container:has(.menu__link[href*="marketplace"]), +[data-theme='dark'] .theme-doc-sidebar-container:has(.menu__link[href*="marketplace"]) { + padding: 10px !important; /* More padding for marketplace */ +} + +/* Troubleshooting Sidebar - target by URL or specific class */ +[data-theme='light'] .theme-doc-sidebar-container:has(.menu__link[href*="troubleshooting"]), +[data-theme='dark'] .theme-doc-sidebar-container:has(.menu__link[href*="troubleshooting"]) { + padding: 10px !important; /* Medium padding for troubleshooting */ + margin-bottom: 2px !important; +} + + + + diff --git a/static/img/grid-pattern-dark.png b/static/img/grid-pattern-dark.png new file mode 100644 index 00000000..68402289 Binary files /dev/null and b/static/img/grid-pattern-dark.png differ diff --git a/static/img/grid-pattern.png b/static/img/grid-pattern.png new file mode 100644 index 00000000..925b5bdd Binary files /dev/null and b/static/img/grid-pattern.png differ