Repository files navigation


Flutter Folio

A demo app showcasing how Flutter can deliver a great multi-platform experience, targeting iOS, Android, MacOS, Windows, Linux, and web. Built by gskinner in partnership with Google, Flutter Folio purposefully considers user expectations, input devices and idioms for each platform, ensuring it feels at home on every device.

In addition to forking and reviewing the MIT licensed code available here, you can check out more information on the Flutter Folio Showcase Website.

About gskinner

We exist to build inovative digital experiences for smart clients, and we love how easy Flutter makes that experience. Don't hesitate to stop by our site to learn more about what we do. We'd love to hear from you!

Demo Builds

To preview the app without needing to run a build process you can download any of the latest released builds.

Target PlatfomBuild
Web www.flutterfolio.com
Linuxtar.gz
Windows.zip
macOSdmg
AndroidCheckout the repo to install on your local device.
iOSCheckout the repo to install on your local device.

Installation

If you're new to Flutter the first thing you'll need is to follow the setup instructions.

Once Flutter is setup, you can use the default stable channel, or switch to the latest dev version to get the most current fixes for desktop/web:

  • Run flutter channel dev
  • Run flutter upgrade

If you've never run a desktop build before, you will need to enable it with a one-time command for your current platform:

  • flutter config --enable-macos-desktop
  • flutter config --enable-windows-desktop
  • flutter config --enable-linux-desktop

Once you're on dev and desktop is enabled, you're ready to run the app:

  • flutter run -d windows
  • flutter run -d macos
  • flutter run -d linux
  • flutter run -d android
  • flutter run -d ios
  • flutter run -d web

If you re-start your IDE, you should also see a new launch option for your current desktop platform.

Client Keys

This repo includes a set of Keys for Cloudinary and Firebase that are on the free pricing plans. Depending on traffic, these may reach their limit. If that happens, you will need to to provide your own keys in order to run the app locally, those can be found in AppKeys.dart. These limits should refresh each month, so your mileage will vary here.

License

This application is released under the MIT license. You can use the code for any purpose, including commercial projects.

license

About

A platform adaptive Flutter app for desktop, mobile, and web.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation


Flutter Folio

A demo app showcasing how Flutter can deliver a great multi-platform experience, targeting iOS, Android, MacOS, Windows, Linux, and web. Built by gskinner in partnership with Google, Flutter Folio purposefully considers user expectations, input devices and idioms for each platform, ensuring it feels at home on every device.

In addition to forking and reviewing the MIT licensed code available here, you can check out more information on the Flutter Folio Showcase Website.

About gskinner

We exist to build inovative digital experiences for smart clients, and we love how easy Flutter makes that experience. Don't hesitate to stop by our site to learn more about what we do. We'd love to hear from you!

Demo Builds

To preview the app without needing to run a build process you can download any of the latest released builds.

Target PlatfomBuild
Web www.flutterfolio.com
Linuxtar.gz
Windows.zip
macOSdmg
AndroidCheckout the repo to install on your local device.
iOSCheckout the repo to install on your local device.

Installation

If you're new to Flutter the first thing you'll need is to follow the setup instructions.

Once Flutter is setup, you can use the default stable channel, or switch to the latest dev version to get the most current fixes for desktop/web:

  • Run flutter channel dev
  • Run flutter upgrade

If you've never run a desktop build before, you will need to enable it with a one-time command for your current platform:

  • flutter config --enable-macos-desktop
  • flutter config --enable-windows-desktop
  • flutter config --enable-linux-desktop

Once you're on dev and desktop is enabled, you're ready to run the app:

  • flutter run -d windows
  • flutter run -d macos
  • flutter run -d linux
  • flutter run -d android
  • flutter run -d ios
  • flutter run -d web

If you re-start your IDE, you should also see a new launch option for your current desktop platform.

Client Keys

This repo includes a set of Keys for Cloudinary and Firebase that are on the free pricing plans. Depending on traffic, these may reach their limit. If that happens, you will need to to provide your own keys in order to run the app locally, those can be found in AppKeys.dart. These limits should refresh each month, so your mileage will vary here.

License

This application is released under the MIT license. You can use the code for any purpose, including commercial projects.

license

About

A platform adaptive Flutter app for desktop, mobile, and web.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


Flutter Folio

A demo app showcasing how Flutter can deliver a great multi-platform experience, targeting iOS, Android, MacOS, Windows, Linux, and web. Built by gskinner in partnership with Google, Flutter Folio purposefully considers user expectations, input devices and idioms for each platform, ensuring it feels at home on every device.

In addition to forking and reviewing the MIT licensed code available here, you can check out more information on the Flutter Folio Showcase Website.

About gskinner

We exist to build inovative digital experiences for smart clients, and we love how easy Flutter makes that experience. Don't hesitate to stop by our site to learn more about what we do. We'd love to hear from you!

Demo Builds

To preview the app without needing to run a build process you can download any of the latest released builds.

Target PlatfomBuild
Web www.flutterfolio.com
Linuxtar.gz
Windows.zip
macOSdmg
AndroidCheckout the repo to install on your local device.
iOSCheckout the repo to install on your local device.

Installation

If you're new to Flutter the first thing you'll need is to follow the setup instructions.

Once Flutter is setup, you can use the default stable channel, or switch to the latest dev version to get the most current fixes for desktop/web:

  • Run flutter channel dev
  • Run flutter upgrade

If you've never run a desktop build before, you will need to enable it with a one-time command for your current platform:

  • flutter config --enable-macos-desktop
  • flutter config --enable-windows-desktop
  • flutter config --enable-linux-desktop

Once you're on dev and desktop is enabled, you're ready to run the app:

  • flutter run -d windows
  • flutter run -d macos
  • flutter run -d linux
  • flutter run -d android
  • flutter run -d ios
  • flutter run -d web

If you re-start your IDE, you should also see a new launch option for your current desktop platform.

Client Keys

This repo includes a set of Keys for Cloudinary and Firebase that are on the free pricing plans. Depending on traffic, these may reach their limit. If that happens, you will need to to provide your own keys in order to run the app locally, those can be found in AppKeys.dart. These limits should refresh each month, so your mileage will vary here.

License

This application is released under the MIT license. You can use the code for any purpose, including commercial projects.

license

About

A platform adaptive Flutter app for desktop, mobile, and web.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


Flutter Folio

A demo app showcasing how Flutter can deliver a great multi-platform experience, targeting iOS, Android, MacOS, Windows, Linux, and web. Built by gskinner in partnership with Google, Flutter Folio purposefully considers user expectations, input devices and idioms for each platform, ensuring it feels at home on every device.

In addition to forking and reviewing the MIT licensed code available here, you can check out more information on the Flutter Folio Showcase Website.

About gskinner

We exist to build inovative digital experiences for smart clients, and we love how easy Flutter makes that experience. Don't hesitate to stop by our site to learn more about what we do. We'd love to hear from you!

Demo Builds

To preview the app without needing to run a build process you can download any of the latest released builds.

Target PlatfomBuild
Web www.flutterfolio.com
Linuxtar.gz
Windows.zip
macOSdmg
AndroidCheckout the repo to install on your local device.
iOSCheckout the repo to install on your local device.

Installation

If you're new to Flutter the first thing you'll need is to follow the setup instructions.

Once Flutter is setup, you can use the default stable channel, or switch to the latest dev version to get the most current fixes for desktop/web:

  • Run flutter channel dev
  • Run flutter upgrade

If you've never run a desktop build before, you will need to enable it with a one-time command for your current platform:

  • flutter config --enable-macos-desktop
  • flutter config --enable-windows-desktop
  • flutter config --enable-linux-desktop

Once you're on dev and desktop is enabled, you're ready to run the app:

  • flutter run -d windows
  • flutter run -d macos
  • flutter run -d linux
  • flutter run -d android
  • flutter run -d ios
  • flutter run -d web

If you re-start your IDE, you should also see a new launch option for your current desktop platform.

Client Keys

This repo includes a set of Keys for Cloudinary and Firebase that are on the free pricing plans. Depending on traffic, these may reach their limit. If that happens, you will need to to provide your own keys in order to run the app locally, those can be found in AppKeys.dart. These limits should refresh each month, so your mileage will vary here.

License

This application is released under the MIT license. You can use the code for any purpose, including commercial projects.

license

About

A platform adaptive Flutter app for desktop, mobile, and web.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation


Flutter Folio

A demo app showcasing how Flutter can deliver a great multi-platform experience, targeting iOS, Android, MacOS, Windows, Linux, and web. Built by gskinner in partnership with Google, Flutter Folio purposefully considers user expectations, input devices and idioms for each platform, ensuring it feels at home on every device.

In addition to forking and reviewing the MIT licensed code available here, you can check out more information on the Flutter Folio Showcase Website.

About gskinner

We exist to build inovative digital experiences for smart clients, and we love how easy Flutter makes that experience. Don't hesitate to stop by our site to learn more about what we do. We'd love to hear from you!

Demo Builds

To preview the app without needing to run a build process you can download any of the latest released builds.

Target PlatfomBuild
Web www.flutterfolio.com
Linuxtar.gz
Windows.zip
macOSdmg
AndroidCheckout the repo to install on your local device.
iOSCheckout the repo to install on your local device.

Installation

If you're new to Flutter the first thing you'll need is to follow the setup instructions.

Once Flutter is setup, you can use the default stable channel, or switch to the latest dev version to get the most current fixes for desktop/web:

  • Run flutter channel dev
  • Run flutter upgrade

If you've never run a desktop build before, you will need to enable it with a one-time command for your current platform:

  • flutter config --enable-macos-desktop
  • flutter config --enable-windows-desktop
  • flutter config --enable-linux-desktop

Once you're on dev and desktop is enabled, you're ready to run the app:

  • flutter run -d windows
  • flutter run -d macos
  • flutter run -d linux
  • flutter run -d android
  • flutter run -d ios
  • flutter run -d web

If you re-start your IDE, you should also see a new launch option for your current desktop platform.

Client Keys

This repo includes a set of Keys for Cloudinary and Firebase that are on the free pricing plans. Depending on traffic, these may reach their limit. If that happens, you will need to to provide your own keys in order to run the app locally, those can be found in AppKeys.dart. These limits should refresh each month, so your mileage will vary here.

License

This application is released under the MIT license. You can use the code for any purpose, including commercial projects.

license

About

A platform adaptive Flutter app for desktop, mobile, and web.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


Flutter Folio

A demo app showcasing how Flutter can deliver a great multi-platform experience, targeting iOS, Android, MacOS, Windows, Linux, and web. Built by gskinner in partnership with Google, Flutter Folio purposefully considers user expectations, input devices and idioms for each platform, ensuring it feels at home on every device.

In addition to forking and reviewing the MIT licensed code available here, you can check out more information on the Flutter Folio Showcase Website.

About gskinner

We exist to build inovative digital experiences for smart clients, and we love how easy Flutter makes that experience. Don't hesitate to stop by our site to learn more about what we do. We'd love to hear from you!

Demo Builds

To preview the app without needing to run a build process you can download any of the latest released builds.

Target PlatfomBuild
Web www.flutterfolio.com
Linuxtar.gz
Windows.zip
macOSdmg
AndroidCheckout the repo to install on your local device.
iOSCheckout the repo to install on your local device.

Installation

If you're new to Flutter the first thing you'll need is to follow the setup instructions.

Once Flutter is setup, you can use the default stable channel, or switch to the latest dev version to get the most current fixes for desktop/web:

  • Run flutter channel dev
  • Run flutter upgrade

If you've never run a desktop build before, you will need to enable it with a one-time command for your current platform:

  • flutter config --enable-macos-desktop
  • flutter config --enable-windows-desktop
  • flutter config --enable-linux-desktop

Once you're on dev and desktop is enabled, you're ready to run the app:

  • flutter run -d windows
  • flutter run -d macos
  • flutter run -d linux
  • flutter run -d android
  • flutter run -d ios
  • flutter run -d web

If you re-start your IDE, you should also see a new launch option for your current desktop platform.

Client Keys

This repo includes a set of Keys for Cloudinary and Firebase that are on the free pricing plans. Depending on traffic, these may reach their limit. If that happens, you will need to to provide your own keys in order to run the app locally, those can be found in AppKeys.dart. These limits should refresh each month, so your mileage will vary here.

License

This application is released under the MIT license. You can use the code for any purpose, including commercial projects.

license

About

A platform adaptive Flutter app for desktop, mobile, and web.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


Flutter Folio

A demo app showcasing how Flutter can deliver a great multi-platform experience, targeting iOS, Android, MacOS, Windows, Linux, and web. Built by gskinner in partnership with Google, Flutter Folio purposefully considers user expectations, input devices and idioms for each platform, ensuring it feels at home on every device.

In addition to forking and reviewing the MIT licensed code available here, you can check out more information on the Flutter Folio Showcase Website.

About gskinner

We exist to build inovative digital experiences for smart clients, and we love how easy Flutter makes that experience. Don't hesitate to stop by our site to learn more about what we do. We'd love to hear from you!

Demo Builds

To preview the app without needing to run a build process you can download any of the latest released builds.

Target PlatfomBuild
Web www.flutterfolio.com
Linuxtar.gz
Windows.zip
macOSdmg
AndroidCheckout the repo to install on your local device.
iOSCheckout the repo to install on your local device.

Installation

If you're new to Flutter the first thing you'll need is to follow the setup instructions.

Once Flutter is setup, you can use the default stable channel, or switch to the latest dev version to get the most current fixes for desktop/web:

  • Run flutter channel dev
  • Run flutter upgrade

If you've never run a desktop build before, you will need to enable it with a one-time command for your current platform:

  • flutter config --enable-macos-desktop
  • flutter config --enable-windows-desktop
  • flutter config --enable-linux-desktop

Once you're on dev and desktop is enabled, you're ready to run the app:

  • flutter run -d windows
  • flutter run -d macos
  • flutter run -d linux
  • flutter run -d android
  • flutter run -d ios
  • flutter run -d web

If you re-start your IDE, you should also see a new launch option for your current desktop platform.

Client Keys

This repo includes a set of Keys for Cloudinary and Firebase that are on the free pricing plans. Depending on traffic, these may reach their limit. If that happens, you will need to to provide your own keys in order to run the app locally, those can be found in AppKeys.dart. These limits should refresh each month, so your mileage will vary here.

License

This application is released under the MIT license. You can use the code for any purpose, including commercial projects.

license

About

A platform adaptive Flutter app for desktop, mobile, and web.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation


Flutter Folio

A demo app showcasing how Flutter can deliver a great multi-platform experience, targeting iOS, Android, MacOS, Windows, Linux, and web. Built by gskinner in partnership with Google, Flutter Folio purposefully considers user expectations, input devices and idioms for each platform, ensuring it feels at home on every device.

In addition to forking and reviewing the MIT licensed code available here, you can check out more information on the Flutter Folio Showcase Website.

About gskinner

We exist to build inovative digital experiences for smart clients, and we love how easy Flutter makes that experience. Don't hesitate to stop by our site to learn more about what we do. We'd love to hear from you!

Demo Builds

To preview the app without needing to run a build process you can download any of the latest released builds.

Target PlatfomBuild
Web www.flutterfolio.com
Linuxtar.gz
Windows.zip
macOSdmg
AndroidCheckout the repo to install on your local device.
iOSCheckout the repo to install on your local device.

Installation

If you're new to Flutter the first thing you'll need is to follow the setup instructions.

Once Flutter is setup, you can use the default stable channel, or switch to the latest dev version to get the most current fixes for desktop/web:

  • Run flutter channel dev
  • Run flutter upgrade

If you've never run a desktop build before, you will need to enable it with a one-time command for your current platform:

  • flutter config --enable-macos-desktop
  • flutter config --enable-windows-desktop
  • flutter config --enable-linux-desktop

Once you're on dev and desktop is enabled, you're ready to run the app:

  • flutter run -d windows
  • flutter run -d macos
  • flutter run -d linux
  • flutter run -d android
  • flutter run -d ios
  • flutter run -d web

If you re-start your IDE, you should also see a new launch option for your current desktop platform.

Client Keys

This repo includes a set of Keys for Cloudinary and Firebase that are on the free pricing plans. Depending on traffic, these may reach their limit. If that happens, you will need to to provide your own keys in order to run the app locally, those can be found in AppKeys.dart. These limits should refresh each month, so your mileage will vary here.

License

This application is released under the MIT license. You can use the code for any purpose, including commercial projects.

license

About

A platform adaptive Flutter app for desktop, mobile, and web.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages