CINXE.COM

GitHub - flutter/gallery: Flutter Gallery is a resource to help developers evaluate and use Flutter

<!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://github.com/flutter/gallery","20210424062607","https://web.archive.org/","web","/_static/", "1619245567"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://web.archive.org/web/20210424062607/https://github.githubassets.com/"> <link rel="dns-prefetch" href="https://web.archive.org/web/20210424062607/https://avatars.githubusercontent.com/"> <link rel="dns-prefetch" href="https://web.archive.org/web/20210424062607/https://github-cloud.s3.amazonaws.com/"> <link rel="dns-prefetch" href="https://web.archive.org/web/20210424062607/https://user-images.githubusercontent.com/"> <link crossorigin="anonymous" media="all" integrity="" rel="stylesheet" href="https://web.archive.org/web/20210424062607cs_/https://github.githubassets.com/assets/frameworks-eca8e21af2622cbcba2c93c67f79baed.css"/> <link crossorigin="anonymous" media="all" integrity="" rel="stylesheet" href="https://web.archive.org/web/20210424062607cs_/https://github.githubassets.com/assets/behaviors-743b00a13de631a03c8322d992c8572f.css"/> <link crossorigin="anonymous" media="all" integrity="" rel="stylesheet" href="https://web.archive.org/web/20210424062607cs_/https://github.githubassets.com/assets/github-1936132ab339d44e709aea7559d2e469.css"/> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20210424062607js_/https://github.githubassets.com/assets/environment-0b3798e0.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20210424062607js_/https://github.githubassets.com/assets/chunk-frameworks-13e30da5.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20210424062607js_/https://github.githubassets.com/assets/chunk-vendor-fb504df1.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20210424062607js_/https://github.githubassets.com/assets/behaviors-59349de2.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-animate-on-scroll.js" data-src="https://github.githubassets.com/assets/chunk-animate-on-scroll-b63b8d41.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-codemirror.js" data-src="https://github.githubassets.com/assets/chunk-codemirror-f81284b4.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-color-modes.js" data-src="https://github.githubassets.com/assets/chunk-color-modes-10a3afa8.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-contributions-spider-graph.js" data-src="https://github.githubassets.com/assets/chunk-contributions-spider-graph-ce46194a.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-drag-drop.js" data-src="https://github.githubassets.com/assets/chunk-drag-drop-ea3fe848.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-edit.js" data-src="https://github.githubassets.com/assets/chunk-edit-37ece2a8.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-emoji-picker-element.js" data-src="https://github.githubassets.com/assets/chunk-emoji-picker-element-6a2a8c20.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-filter-input.js" data-src="https://github.githubassets.com/assets/chunk-filter-input-5f68e32a.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-insights-graph.js" data-src="https://github.githubassets.com/assets/chunk-insights-graph-5f0b9074.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-jump-to.js" data-src="https://github.githubassets.com/assets/chunk-jump-to-82e7a044.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-notification-list-focus.js" data-src="https://github.githubassets.com/assets/chunk-notification-list-focus-b2ea5993.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-profile-pins-element.js" data-src="https://github.githubassets.com/assets/chunk-profile-pins-element-99ad0e3b.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-ref-selector.js" data-src="https://github.githubassets.com/assets/chunk-ref-selector-c819be6c.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-responsive-underlinenav.js" data-src="https://github.githubassets.com/assets/chunk-responsive-underlinenav-f72154b0.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-runner-groups.js" data-src="https://github.githubassets.com/assets/chunk-runner-groups-f56357b4.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-sortable-behavior.js" data-src="https://github.githubassets.com/assets/chunk-sortable-behavior-7c8abd32.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-toast.js" data-src="https://github.githubassets.com/assets/chunk-toast-58af155f.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-tweetsodium.js" data-src="https://github.githubassets.com/assets/chunk-tweetsodium-be01c912.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-user-status-submit.js" data-src="https://github.githubassets.com/assets/chunk-user-status-submit-b9c54d90.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20210424062607js_/https://github.githubassets.com/assets/codespaces-93d444ba.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20210424062607js_/https://github.githubassets.com/assets/repositories-79a05289.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20210424062607js_/https://github.githubassets.com/assets/topic-suggestions-55d0e74f.js"></script> <meta name="viewport" content="width=device-width"> <title>GitHub - flutter/gallery: Flutter Gallery is a resource to help developers evaluate and use Flutter</title> <meta name="description" content="Flutter Gallery is a resource to help developers evaluate and use Flutter - flutter/gallery"> <link rel="search" type="application/opensearchdescription+xml" href="/web/20210424062607/https://github.com/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905"/> <meta name="twitter:image:src" content="https://repository-images.githubusercontent.com/245230215/1b55cf80-63f4-11ea-8921-29edb856065e"/><meta name="twitter:site" content="@github"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="flutter/gallery"/><meta name="twitter:description" content="Flutter Gallery is a resource to help developers evaluate and use Flutter - flutter/gallery"/> <meta property="og:image" content="https://web.archive.org/web/20210424062607im_/https://repository-images.githubusercontent.com/245230215/1b55cf80-63f4-11ea-8921-29edb856065e"/><meta property="og:site_name" content="GitHub"/><meta property="og:type" content="object"/><meta property="og:title" content="flutter/gallery"/><meta property="og:url" content="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery"/><meta property="og:description" content="Flutter Gallery is a resource to help developers evaluate and use Flutter - flutter/gallery"/> <link rel="assets" href="https://github.githubassets.com/"> <meta name="request-id" content="D0BC:2405:FE9D3F:11079C0:6083B9FF" data-pjax-transient="true"/><meta name="html-safe-nonce" content="99d4294480b58a7c2d95fcb441611ef890f36ea8dcf32d395ad6c0a653c50213" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWJnbC1nbG9iZS9kYXRhL2RhdGEuanNvbiIsInJlcXVlc3RfaWQiOiJEMEJDOjI0MDU6RkU5RDNGOjExMDc5QzA6NjA4M0I5RkYiLCJ2aXNpdG9yX2lkIjoiNTAxNjQzNjIzOTAwODc3NDUxMiIsInJlZ2lvbl9lZGdlIjoic2VhIiwicmVnaW9uX3JlbmRlciI6InNlYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="204368ea2308275b1d10a021ac0eb9506f32d6d7de005205c30c8cda43d88d60" data-pjax-transient="true"/> <meta name="hovercard-subject-tag" content="repository:245230215" data-pjax-transient> <meta name="github-keyboard-shortcuts" content="repository" data-pjax-transient="true"/> <meta name="selected-link" value="repo_source" data-pjax-transient> <meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY"> <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU"> <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA"> <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc"> <meta name="octolytics-host" content="collector.githubapp.com"/><meta name="octolytics-app-id" content="github"/><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event"/> <meta name="analytics-location" content="/<user-name>/<repo-name>" data-pjax-transient="true"/> <meta name="optimizely-datafile" content="{&quot;version&quot;: &quot;4&quot;, &quot;rollouts&quot;: [], &quot;typedAudiences&quot;: [], &quot;anonymizeIP&quot;: true, &quot;projectId&quot;: &quot;16737760170&quot;, &quot;variables&quot;: [], &quot;featureFlags&quot;: [], &quot;experiments&quot;: [{&quot;status&quot;: &quot;Running&quot;, &quot;audienceIds&quot;: [], &quot;variations&quot;: [{&quot;variables&quot;: [], &quot;id&quot;: &quot;20032917689&quot;, &quot;key&quot;: &quot;usd&quot;}, {&quot;variables&quot;: [], &quot;id&quot;: &quot;20061556073&quot;, &quot;key&quot;: &quot;localized_currency&quot;}], &quot;id&quot;: &quot;20047736562&quot;, &quot;key&quot;: &quot;local_currency_pricing&quot;, &quot;layerId&quot;: &quot;20053528569&quot;, &quot;trafficAllocation&quot;: [{&quot;entityId&quot;: &quot;20032917689&quot;, &quot;endOfRange&quot;: 5000}, {&quot;entityId&quot;: &quot;20061556073&quot;, &quot;endOfRange&quot;: 10000}], &quot;forcedVariations&quot;: {&quot;667685045.1617740930&quot;: &quot;localized_currency&quot;}}, {&quot;status&quot;: &quot;Running&quot;, &quot;audienceIds&quot;: [], &quot;variations&quot;: [{&quot;variables&quot;: [], &quot;id&quot;: &quot;20155488945&quot;, &quot;key&quot;: &quot;control&quot;}, {&quot;variables&quot;: [], &quot;id&quot;: &quot;20132706682&quot;, &quot;key&quot;: &quot;show_missions&quot;}], &quot;id&quot;: &quot;20144258527&quot;, &quot;key&quot;: &quot;dashboard_missions&quot;, &quot;layerId&quot;: &quot;20134196434&quot;, &quot;trafficAllocation&quot;: [{&quot;entityId&quot;: &quot;20132706682&quot;, &quot;endOfRange&quot;: 1250}, {&quot;entityId&quot;: &quot;&quot;, &quot;endOfRange&quot;: 5000}, {&quot;entityId&quot;: &quot;20155488945&quot;, &quot;endOfRange&quot;: 6250}, {&quot;entityId&quot;: &quot;&quot;, &quot;endOfRange&quot;: 10000}], &quot;forcedVariations&quot;: {}}], &quot;audiences&quot;: [{&quot;conditions&quot;: &quot;[\&quot;or\&quot;, {\&quot;match\&quot;: \&quot;exact\&quot;, \&quot;name\&quot;: \&quot;$opt_dummy_attribute\&quot;, \&quot;type\&quot;: \&quot;custom_attribute\&quot;, \&quot;value\&quot;: \&quot;$opt_dummy_value\&quot;}]&quot;, &quot;id&quot;: &quot;$opt_dummy_audience&quot;, &quot;name&quot;: &quot;Optimizely-Generated Audience for Backwards Compatibility&quot;}], &quot;groups&quot;: [], &quot;attributes&quot;: [{&quot;id&quot;: &quot;16822470375&quot;, &quot;key&quot;: &quot;user_id&quot;}, {&quot;id&quot;: &quot;17143601254&quot;, &quot;key&quot;: &quot;spammy&quot;}, {&quot;id&quot;: &quot;18175660309&quot;, &quot;key&quot;: &quot;organization_plan&quot;}, {&quot;id&quot;: &quot;18813001570&quot;, &quot;key&quot;: &quot;is_logged_in&quot;}, {&quot;id&quot;: &quot;19073851829&quot;, &quot;key&quot;: &quot;geo&quot;}, {&quot;id&quot;: &quot;20175462351&quot;, &quot;key&quot;: &quot;requestedCurrency&quot;}], &quot;botFiltering&quot;: false, &quot;accountId&quot;: &quot;16737760170&quot;, &quot;events&quot;: [{&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;17911811441&quot;, &quot;key&quot;: &quot;hydro_click.dashboard.teacher_toolbox_cta&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18124116703&quot;, &quot;key&quot;: &quot;submit.organizations.complete_sign_up&quot;}, {&quot;experimentIds&quot;: [&quot;20144258527&quot;], &quot;id&quot;: &quot;18145892387&quot;, &quot;key&quot;: &quot;no_metric.tracked_outside_of_optimizely&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18178755568&quot;, &quot;key&quot;: &quot;click.org_onboarding_checklist.add_repo&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18180553241&quot;, &quot;key&quot;: &quot;submit.repository_imports.create&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18186103728&quot;, &quot;key&quot;: &quot;click.help.learn_more_about_repository_creation&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18188530140&quot;, &quot;key&quot;: &quot;test_event.do_not_use_in_production&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18191963644&quot;, &quot;key&quot;: &quot;click.empty_org_repo_cta.transfer_repository&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18195612788&quot;, &quot;key&quot;: &quot;click.empty_org_repo_cta.import_repository&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18210945499&quot;, &quot;key&quot;: &quot;click.org_onboarding_checklist.invite_members&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18211063248&quot;, &quot;key&quot;: &quot;click.empty_org_repo_cta.create_repository&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18215721889&quot;, &quot;key&quot;: &quot;click.org_onboarding_checklist.update_profile&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18224360785&quot;, &quot;key&quot;: &quot;click.org_onboarding_checklist.dismiss&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18234832286&quot;, &quot;key&quot;: &quot;submit.organization_activation.complete&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18252392383&quot;, &quot;key&quot;: &quot;submit.org_repository.create&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18257551537&quot;, &quot;key&quot;: &quot;submit.org_member_invitation.create&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18259522260&quot;, &quot;key&quot;: &quot;submit.organization_profile.update&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18564603625&quot;, &quot;key&quot;: &quot;view.classroom_select_organization&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18568612016&quot;, &quot;key&quot;: &quot;click.classroom_sign_in_click&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18572592540&quot;, &quot;key&quot;: &quot;view.classroom_name&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18574203855&quot;, &quot;key&quot;: &quot;click.classroom_create_organization&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18582053415&quot;, &quot;key&quot;: &quot;click.classroom_select_organization&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18589463420&quot;, &quot;key&quot;: &quot;click.classroom_create_classroom&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18591323364&quot;, &quot;key&quot;: &quot;click.classroom_create_first_classroom&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18591652321&quot;, &quot;key&quot;: &quot;click.classroom_grant_access&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18607131425&quot;, &quot;key&quot;: &quot;view.classroom_creation&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;18831680583&quot;, &quot;key&quot;: &quot;upgrade_account_plan&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19064064515&quot;, &quot;key&quot;: &quot;click.signup&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19075373687&quot;, &quot;key&quot;: &quot;click.view_account_billing_page&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19077355841&quot;, &quot;key&quot;: &quot;click.dismiss_signup_prompt&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19079713938&quot;, &quot;key&quot;: &quot;click.contact_sales&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19120963070&quot;, &quot;key&quot;: &quot;click.compare_account_plans&quot;}, {&quot;experimentIds&quot;: [&quot;20047736562&quot;], &quot;id&quot;: &quot;19151690317&quot;, &quot;key&quot;: &quot;click.upgrade_account_cta&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19424193129&quot;, &quot;key&quot;: &quot;click.open_account_switcher&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19520330825&quot;, &quot;key&quot;: &quot;click.visit_account_profile&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19540970635&quot;, &quot;key&quot;: &quot;click.switch_account_context&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19730198868&quot;, &quot;key&quot;: &quot;submit.homepage_signup&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19820830627&quot;, &quot;key&quot;: &quot;click.homepage_signup&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;19988571001&quot;, &quot;key&quot;: &quot;click.create_enterprise_trial&quot;}, {&quot;experimentIds&quot;: [&quot;20047736562&quot;], &quot;id&quot;: &quot;20036538294&quot;, &quot;key&quot;: &quot;click.create_organization_team&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;20040653299&quot;, &quot;key&quot;: &quot;click.input_enterprise_trial_form&quot;}, {&quot;experimentIds&quot;: [&quot;20047736562&quot;], &quot;id&quot;: &quot;20062030003&quot;, &quot;key&quot;: &quot;click.continue_with_team&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;20068947153&quot;, &quot;key&quot;: &quot;click.create_organization_free&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;20086636658&quot;, &quot;key&quot;: &quot;click.signup_continue.username&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;20091648988&quot;, &quot;key&quot;: &quot;click.signup_continue.create_account&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;20103637615&quot;, &quot;key&quot;: &quot;click.signup_continue.email&quot;}, {&quot;experimentIds&quot;: [], &quot;id&quot;: &quot;20111574253&quot;, &quot;key&quot;: &quot;click.signup_continue.password&quot;}, {&quot;experimentIds&quot;: [&quot;20047736562&quot;], &quot;id&quot;: &quot;20120044111&quot;, &quot;key&quot;: &quot;view.pricing_page&quot;}, {&quot;experimentIds&quot;: [&quot;20047736562&quot;], &quot;id&quot;: &quot;20152062109&quot;, &quot;key&quot;: &quot;submit.create_account&quot;}, {&quot;experimentIds&quot;: [&quot;20047736562&quot;], &quot;id&quot;: &quot;20165800992&quot;, &quot;key&quot;: &quot;submit.upgrade_payment_form&quot;}, {&quot;experimentIds&quot;: [&quot;20047736562&quot;], &quot;id&quot;: &quot;20171520319&quot;, &quot;key&quot;: &quot;submit.create_organization&quot;}], &quot;revision&quot;: &quot;617&quot;}"/> <!-- To prevent page flashing, the optimizely JS needs to be loaded in the <head> tag before the DOM renders --> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20210424062607js_/https://github.githubassets.com/assets/optimizely-5366e900.js"></script> <meta name="hostname" content="github.com"> <meta name="user-login" content=""> <meta name="expected-hostname" content="github.com"> <meta name="enabled-features" content="MARKETPLACE_PENDING_INSTALLATIONS,AUTOCOMPLETE_EMOJIS_IN_MARKDOWN_EDITOR,ACTIONS_CONCURRENCY_UI"> <meta http-equiv="x-pjax-version" content="031223f33b9cb3182dfb0ff62ca1503334049f018ae2c8d6b349df57a9005815"> <meta name="go-import" content="github.com/flutter/gallery git https://github.com/flutter/gallery.git"> <meta name="octolytics-dimension-user_id" content="14101776"/><meta name="octolytics-dimension-user_login" content="flutter"/><meta name="octolytics-dimension-repository_id" content="245230215"/><meta name="octolytics-dimension-repository_nwo" content="flutter/gallery"/><meta name="octolytics-dimension-repository_public" content="true"/><meta name="octolytics-dimension-repository_is_fork" content="false"/><meta name="octolytics-dimension-repository_network_root_id" content="245230215"/><meta name="octolytics-dimension-repository_network_root_nwo" content="flutter/gallery"/> <link rel="canonical" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery" data-pjax-transient> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <meta name="browser-optimizely-client-errors-url" content="https://api.github.com/_private/browser/optimizely_client/errors"> <link rel="mask-icon" href="https://web.archive.org/web/20210424062607im_/https://github.githubassets.com/pinned-octocat.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://web.archive.org/web/20210424062607im_/https://github.githubassets.com/favicons/favicon.svg"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark"/> <link rel="manifest" href="/web/20210424062607/https://github.com/manifest.json" crossorigin="use-credentials"> </head> <body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div class="position-relative js-header-wrapper "> <a href="#start-of-content" class="px-2 py-4 color-bg-info-inverse color-text-white show-on-focus js-skip-to-content">Skip to content</a> <span class="progress-pjax-loader width-full js-pjax-loader-bar Progress position-fixed"> <span style="background-color: #79b8ff;width: 0%;" class="Progress-item progress-pjax-loader-bar "></span> </span> <header class="Header-old header-logged-out js-details-container Details position-relative f4 py-2" role="banner"> <div class="container-xl d-lg-flex flex-items-center p-responsive"> <div class="d-flex flex-justify-between flex-items-center"> <a class="mr-4" href="https://web.archive.org/web/20210424062607/https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark"> <svg height="32" class="octicon octicon-mark-github color-text-white" viewbox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg> </a> <div class="d-lg-none css-truncate css-truncate-target width-fit p-2"> </div> <div class="d-flex flex-items-center"> <a href="/web/20210424062607/https://github.com/join?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&amp;source=header-repo" class="d-inline-block d-lg-none f5 color-text-white no-underline border color-border-tertiary rounded-2 px-2 py-1 mr-3 mr-sm-5 js-signup-redesign-control js-signup-redesign-target" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dfafda58c49a6bd032f5981efada23df7a1ad444ef147b9e8ff06dec814a9491"> Sign&nbsp;up </a> <a href="/web/20210424062607/https://github.com/join_next?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&amp;source=header-repo" class="d-inline-block d-lg-none f5 color-text-white no-underline border color-border-tertiary rounded-2 px-2 py-1 mr-3 mr-sm-5 js-signup-redesign-variation js-signup-redesign-target" hidden data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dfafda58c49a6bd032f5981efada23df7a1ad444ef147b9e8ff06dec814a9491"> Sign&nbsp;up </a> <button class="btn-link d-lg-none mt-1 js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false"> <svg height="24" class="octicon octicon-three-bars color-text-white" viewbox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"></path></svg> </button> </div> </div> <div class="HeaderMenu HeaderMenu--logged-out position-fixed top-0 right-0 bottom-0 height-fit position-lg-relative d-lg-flex flex-justify-between flex-items-center flex-auto"> <div class="d-flex d-lg-none flex-justify-end border-bottom color-bg-secondary p-3"> <button class="btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false"> <svg height="24" class="octicon octicon-x color-text-secondary" viewbox="0 0 24 24" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M5.72 5.72a.75.75 0 011.06 0L12 10.94l5.22-5.22a.75.75 0 111.06 1.06L13.06 12l5.22 5.22a.75.75 0 11-1.06 1.06L12 13.06l-5.22 5.22a.75.75 0 01-1.06-1.06L10.94 12 5.72 6.78a.75.75 0 010-1.06z"></path></svg> </button> </div> <nav class="mt-0 px-3 px-lg-0 mb-5 mb-lg-0" aria-label="Global"> <ul class="d-lg-flex list-style-none"> <li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center "> <details class="HeaderMenu-details details-overlay details-reset width-full"> <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block"> Why GitHub? <svg x="0px" y="0px" viewbox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative"> <path d="M1,1l6.2,6L13,1"></path> </svg> </summary> <div class="dropdown-menu flex-auto rounded px-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4"> <a href="/web/20210424062607/https://github.com/features" class="py-2 lh-condensed-ultra d-block Link--primary no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Features">Features <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a> <ul class="list-style-none f5 pb-3"> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/mobile" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover">Mobile <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/features/actions" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover">Actions <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/features/codespaces" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover">Codespaces <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/features/packages" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover">Packages <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/features/security" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover">Security <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/features/code-review/" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover">Code review <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/features/project-management/" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover">Project management <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/features/integrations" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover">Integrations <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> </ul> <ul class="list-style-none mb-0 border-lg-top pt-lg-3"> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/sponsors" class="py-2 lh-condensed-ultra d-block no-underline Link--primary no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Sponsors">GitHub Sponsors <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/customer-stories" class="py-2 lh-condensed-ultra d-block no-underline Link--primary no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Customer stories">Customer stories<span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> </ul> </div> </details> </li> <li class="border-bottom border-lg-bottom-0 mr-0 mr-lg-3"> <a href="/web/20210424062607/https://github.com/team" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Team">Team</a> </li> <li class="border-bottom border-lg-bottom-0 mr-0 mr-lg-3"> <a href="/web/20210424062607/https://github.com/enterprise" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Enterprise">Enterprise</a> </li> <li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center "> <details class="HeaderMenu-details details-overlay details-reset width-full"> <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block"> Explore <svg x="0px" y="0px" viewbox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative"> <path d="M1,1l6.2,6L13,1"></path> </svg> </summary> <div class="dropdown-menu flex-auto rounded px-0 pt-2 pb-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4"> <ul class="list-style-none mb-3"> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/explore" class="py-2 lh-condensed-ultra d-block Link--primary no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Explore">Explore GitHub <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> </ul> <h4 class="color-text-tertiary text-normal text-mono f5 mb-2 border-lg-top pt-lg-3">Learn and contribute</h4> <ul class="list-style-none mb-3"> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/topics" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Topics">Topics <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/collections" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Collections">Collections <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/trending" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Trending">Trending <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="https://web.archive.org/web/20210424062607/https://lab.github.com/" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Learning lab">Learning Lab <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="https://web.archive.org/web/20210424062607/https://opensource.guide/" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Open source guides">Open source guides <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> </ul> <h4 class="color-text-tertiary text-normal text-mono f5 mb-2 border-lg-top pt-lg-3">Connect with others</h4> <ul class="list-style-none mb-0"> <li class="edge-item-fix"><a href="https://web.archive.org/web/20210424062607/https://github.com/readme" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover">The ReadME Project <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="https://web.archive.org/web/20210424062607/https://github.com/events" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Events">Events <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="https://web.archive.org/web/20210424062607/https://github.community/" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Community forum">Community forum <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="https://web.archive.org/web/20210424062607/https://education.github.com/" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to GitHub Education">GitHub Education <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="https://web.archive.org/web/20210424062607/https://stars.github.com/" class="py-2 pb-0 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to GitHub Stars Program">GitHub Stars program <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> </ul> </div> </details> </li> <li class="border-bottom border-lg-bottom-0 mr-0 mr-lg-3"> <a href="/web/20210424062607/https://github.com/marketplace" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Marketplace">Marketplace</a> </li> <li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center "> <details class="HeaderMenu-details details-overlay details-reset width-full"> <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block"> Pricing <svg x="0px" y="0px" viewbox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative"> <path d="M1,1l6.2,6L13,1"></path> </svg> </summary> <div class="dropdown-menu flex-auto rounded px-0 pt-2 pb-4 mt-0 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4"> <a href="/web/20210424062607/https://github.com/pricing" class="pb-2 lh-condensed-ultra d-block Link--primary no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Pricing">Plans <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a> <ul class="list-style-none mb-3"> <li class="edge-item-fix"><a href="/web/20210424062607/https://github.com/pricing#feature-comparison" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Compare plans">Compare plans <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> <li class="edge-item-fix"><a href="https://web.archive.org/web/20210424062607/https://enterprise.github.com/contact" class="py-2 lh-condensed-ultra d-block Link--secondary no-underline f5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Contact Sales">Contact Sales <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> </ul> <ul class="list-style-none mb-0 border-lg-top pt-lg-3"> <li class="edge-item-fix"><a href="https://web.archive.org/web/20210424062607/https://education.github.com/" class="py-2 pb-0 lh-condensed-ultra d-block no-underline Link--primary no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Education">Education <span class="Bump-link-symbol float-right text-normal color-text-tertiary pr-3">&rarr;</span></a></li> </ul> </div> </details> </li> </ul> </nav> <div class="d-lg-flex flex-items-center px-3 px-lg-0 text-center text-lg-left"> <div class="d-lg-flex min-width-0 mb-3 mb-lg-0"> <div class="header-search flex-auto js-site-search position-relative flex-self-stretch flex-md-self-auto mb-3 mb-md-0 mr-0 mr-md-3 scoped-search site-scoped-search js-jump-to" role="combobox" aria-owns="jump-to-results" aria-label="Search or jump to" aria-haspopup="listbox" aria-expanded="false"> <div class="position-relative"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="245230215" data-scoped-search-url="/flutter/gallery/search" data-owner-scoped-search-url="/orgs/flutter/search" data-unscoped-search-url="/search" action="/web/20210424062607/https://github.com/flutter/gallery/search" accept-charset="UTF-8" method="get"> <label class="form-control input-sm header-search-wrapper p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"> <input type="text" class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable" data-hotkey="s,/" name="q" value="" placeholder="Search" data-unscoped-placeholder="Search GitHub" data-scoped-placeholder="Search" autocapitalize="off" aria-autocomplete="list" aria-controls="jump-to-results" aria-label="Search" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" spellcheck="false" autocomplete="off"> <input type="hidden" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf" value="XeSXu/qe7uPfwXsQojA43RwniSySw5v97uTZGtWpeWgPBQBqYh6vmzlbiiPulAkRmGBRE/g0yB71DOsjYplHFQ=="/> <input type="hidden" class="js-site-search-type-field" name="type"> <img src="https://web.archive.org/web/20210424062607im_/https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash"> <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container"> <ul class="d-none js-jump-to-suggestions-template-container"> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="suggestion"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg> <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="/web/20210424062607im_/https://github.com/flutter/gallery" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository"> In this repository </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> </ul> <ul class="d-none js-jump-to-no-results-template-container"> <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2"> <span class="color-text-secondary">No suggested jump to results</span> </li> </ul> <ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container"> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="scoped_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg> <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="/web/20210424062607im_/https://github.com/flutter/gallery" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository"> In this repository </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-owner-scoped-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="owner_scoped_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg> <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="/web/20210424062607im_/https://github.com/flutter/gallery" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this organization"> In this organization </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="global_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg> <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewbox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="/web/20210424062607im_/https://github.com/flutter/gallery" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository"> In this repository </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-tertiary px-1 color-text-tertiary ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> </ul> </div> </label> </form> </div> </div> </div> <a href="/web/20210424062607/https://github.com/login?return_to=%2Fflutter%2Fgallery" class="HeaderMenu-link flex-shrink-0 no-underline mr-3" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="974e84d8051d6c50d0a24e687519ae3fc72da3b7844818f8351dd3318be4a1c6" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in"> Sign in </a> <a href="/web/20210424062607/https://github.com/join?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&amp;source=header-repo&amp;source_repo=flutter%2Fgallery" class="HeaderMenu-link flex-shrink-0 d-inline-block no-underline border color-border-tertiary rounded px-2 py-1 js-signup-redesign-target js-signup-redesign-control" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="974e84d8051d6c50d0a24e687519ae3fc72da3b7844818f8351dd3318be4a1c6" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.click&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/<user-name>/<repo-name>;ref_cta:Sign up;ref_loc:header logged out&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="595ef10b627dfee1d6a0a0e36a654d637094007bac20644a1db738a7799c174e"> Sign up </a> <a href="/web/20210424062607/https://github.com/join_next?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&amp;source=header-repo&amp;source_repo=flutter%2Fgallery" class="HeaderMenu-link flex-shrink-0 d-inline-block no-underline border color-border-tertiary rounded-1 px-2 py-1 js-signup-redesign-target js-signup-redesign-variation" hidden data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="974e84d8051d6c50d0a24e687519ae3fc72da3b7844818f8351dd3318be4a1c6" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.click&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/<user-name>/<repo-name>;ref_cta:Sign up;ref_loc:header logged out&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="595ef10b627dfee1d6a0a0e36a654d637094007bac20644a1db738a7799c174e"> Sign up </a> </div> </div> </div> </header> </div> <div id="start-of-content" class="show-on-focus"></div> <div data-pjax-replace id="js-flash-container"> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div class=" px-2"> <button class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg class="octicon octicon-x" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg> </button> <div>{{ message }}</div> </div> </div> </template> </div> <include-fragment class="js-notification-shelf-include-fragment" data-base-src="https://github.com/notifications/beta/shelf"></include-fragment> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled> <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class=""> <main id="js-repo-pjax-container" data-pjax-container> <div class="color-bg-secondary pt-3 hide-full-screen mb-5"> <div class="d-flex mb-3 px-3 px-md-4 px-lg-5"> <div class="flex-auto min-width-0 width-fit mr-3"> <h1 class=" d-flex flex-wrap flex-items-center break-word f3 text-normal"> <svg class="octicon octicon-repo color-text-secondary mr-2" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg> <span class="author flex-self-stretch" itemprop="author"> <a class="url fn" rel="author" data-hovercard-type="organization" data-hovercard-url="/orgs/flutter/hovercard" href="/web/20210424062607/https://github.com/flutter">flutter</a> </span> <span class="mx-1 flex-self-stretch color-text-secondary">/</span> <strong itemprop="name" class="mr-2 flex-self-stretch"> <a data-pjax="#js-repo-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery">gallery</a> </strong> </h1> </div> <ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;"> <li> <a class="tooltipped tooltipped-s btn btn-sm" aria-label="You must be signed in to change notification settings" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;notification subscription menu watch&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e70cc54b0cfb2d9088012f7b6c34b9910a8248df53c4616e4178e1feb2c0c17c" href="/web/20210424062607/https://github.com/login?return_to=%2Fflutter%2Fgallery"> <svg class="octicon octicon-bell" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path></svg> Notifications </a> </li> <li> <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to star a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:245230215,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c4c97698ab7f238796ed04d7e961cd9ae3b5f947b111f9dcc47124167e871608" href="/web/20210424062607/https://github.com/login?return_to=%2Fflutter%2Fgallery"> <svg class="octicon octicon-star v-align-text-bottom mr-1" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path></svg> <span> Star </span></a> <a class="social-count js-social-count" href="/web/20210424062607/https://github.com/flutter/gallery/stargazers" aria-label="2274 users starred this repository"> 2.3k </a> </li> <li> <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to fork a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;repo details fork button&quot;,&quot;repository_id&quot;:245230215,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e6a32b467530b4b49cb058595a3b0272fa50288eb3a77eea07600dbd34ae3da2" href="/web/20210424062607/https://github.com/login?return_to=%2Fflutter%2Fgallery"> <svg class="octicon octicon-repo-forked" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"></path></svg> Fork </a> <a href="/web/20210424062607/https://github.com/flutter/gallery/network/members" class="social-count" aria-label="552 users forked this repository"> 552 </a> </li> </ul> </div> <div class="d-block d-md-none mb-2 px-3 px-md-4 px-lg-5"> <p class="f4 mb-3"> Flutter Gallery is a resource to help developers evaluate and use Flutter </p> <div class="mb-2 d-flex flex-items-center"> <svg class="octicon octicon-link flex-shrink-0 mr-2" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg> <span class="flex-auto min-width-0 css-truncate css-truncate-target width-fit"> <a title="https://gallery.flutter.dev" role="link" target="_blank" class="text-bold" rel="noopener noreferrer" href="https://web.archive.org/web/20210424062607/https://gallery.flutter.dev/">gallery.flutter.dev</a> </span> </div> <div class="mb-2"> <a href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/LICENSE" class="Link--muted"> <svg class="octicon octicon-law mr-1" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.75.75a.75.75 0 00-1.5 0V2h-.984c-.305 0-.604.08-.869.23l-1.288.737A.25.25 0 013.984 3H1.75a.75.75 0 000 1.5h.428L.066 9.192a.75.75 0 00.154.838l.53-.53-.53.53v.001l.002.002.002.002.006.006.016.015.045.04a3.514 3.514 0 00.686.45A4.492 4.492 0 003 11c.88 0 1.556-.22 2.023-.454a3.515 3.515 0 00.686-.45l.045-.04.016-.015.006-.006.002-.002.001-.002L5.25 9.5l.53.53a.75.75 0 00.154-.838L3.822 4.5h.162c.305 0 .604-.08.869-.23l1.289-.737a.25.25 0 01.124-.033h.984V13h-2.5a.75.75 0 000 1.5h6.5a.75.75 0 000-1.5h-2.5V3.5h.984a.25.25 0 01.124.033l1.29.736c.264.152.563.231.868.231h.162l-2.112 4.692a.75.75 0 00.154.838l.53-.53-.53.53v.001l.002.002.002.002.006.006.016.015.045.04a3.517 3.517 0 00.686.45A4.492 4.492 0 0013 11c.88 0 1.556-.22 2.023-.454a3.512 3.512 0 00.686-.45l.045-.04.01-.01.006-.005.006-.006.002-.002.001-.002-.529-.531.53.53a.75.75 0 00.154-.838L13.823 4.5h.427a.75.75 0 000-1.5h-2.234a.25.25 0 01-.124-.033l-1.29-.736A1.75 1.75 0 009.735 2H8.75V.75zM1.695 9.227c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327l-1.305 2.9zm10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327l-1.305 2.9z"></path></svg> BSD-3-Clause License </a> </div> <div class="mb-3"> <a class="Link--secondary no-underline mr-3" href="/web/20210424062607/https://github.com/flutter/gallery/stargazers"> <svg class="octicon octicon-star mr-1" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path></svg> <span class="text-bold">2.3k</span> stars </a> <a class="Link--secondary no-underline" href="/web/20210424062607/https://github.com/flutter/gallery/network/members"> <svg class="octicon octicon-repo-forked mr-1" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"></path></svg> <span class="text-bold">552</span> forks </a> </div> <div class="d-flex"> <div class="flex-1 mr-2"> <a class="btn btn-sm btn-block tooltipped tooltipped-s" aria-label="You must be signed in to star a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:245230215,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="c4c97698ab7f238796ed04d7e961cd9ae3b5f947b111f9dcc47124167e871608" href="/web/20210424062607/https://github.com/login?return_to=%2Fflutter%2Fgallery"> <svg class="octicon octicon-star v-align-text-bottom mr-1" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path></svg> <span> Star </span></a> </div> <div class="flex-1"> <a class="tooltipped tooltipped-s btn btn-sm btn-block" aria-label="You must be signed in to change notification settings" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;notification subscription menu watch&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e70cc54b0cfb2d9088012f7b6c34b9910a8248df53c4616e4178e1feb2c0c17c" href="/web/20210424062607/https://github.com/login?return_to=%2Fflutter%2Fgallery"> <svg class="octicon octicon-bell" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path></svg> Notifications </a> </div> </div> </div> <nav data-pjax="#js-repo-pjax-container" aria-label="Repository" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5 color-bg-secondary"> <ul class="UnderlineNav-body list-style-none "> <li class="d-flex"> <a href="/web/20210424062607/https://github.com/flutter/gallery" data-tab-item="i0code-tab" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments /flutter/gallery" data-hotkey="g c" data-ga-click="Repository, Navigation click, Code tab" aria-current="page" class="UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item selected "> <svg class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"></path></svg> <span data-content="Code">Code</span> <span title="Not available" class="Counter "></span> </a></li> <li class="d-flex"> <a href="/web/20210424062607/https://github.com/flutter/gallery/issues" data-tab-item="i1issues-tab" data-selected-links="repo_issues repo_labels repo_milestones /flutter/gallery/issues" data-hotkey="g i" data-ga-click="Repository, Navigation click, Issues tab" class="UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item "> <svg class="octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"></path></svg> <span data-content="Issues">Issues</span> <span title="65" class="Counter ">65</span> </a></li> <li class="d-flex"> <a href="/web/20210424062607/https://github.com/flutter/gallery/pulls" data-tab-item="i2pull-requests-tab" data-selected-links="repo_pulls checks /flutter/gallery/pulls" data-hotkey="g p" data-ga-click="Repository, Navigation click, Pull requests tab" class="UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item "> <svg class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"></path></svg> <span data-content="Pull requests">Pull requests</span> <span title="3" class="Counter ">3</span> </a></li> <li class="d-flex"> <a href="/web/20210424062607/https://github.com/flutter/gallery/actions" data-tab-item="i3actions-tab" data-selected-links="repo_actions /flutter/gallery/actions" data-hotkey="g a" data-ga-click="Repository, Navigation click, Actions tab" class="UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item "> <svg class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"></path></svg> <span data-content="Actions">Actions</span> <span title="Not available" class="Counter "></span> </a></li> <li class="d-flex"> <a href="/web/20210424062607/https://github.com/flutter/gallery/projects" data-tab-item="i4projects-tab" data-selected-links="repo_projects new_repo_project repo_project /flutter/gallery/projects" data-hotkey="g b" data-ga-click="Repository, Navigation click, Projects tab" class="UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item "> <svg class="octicon octicon-project UnderlineNav-octicon d-none d-sm-inline" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg> <span data-content="Projects">Projects</span> <span title="2" class="Counter ">2</span> </a></li> <li class="d-flex"> <a href="/web/20210424062607/https://github.com/flutter/gallery/security" data-tab-item="i5security-tab" data-selected-links="security overview alerts policy token_scanning code_scanning /flutter/gallery/security" data-hotkey="g s" data-ga-click="Repository, Navigation click, Security tab" class="UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item "> <svg class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.467.133a1.75 1.75 0 011.066 0l5.25 1.68A1.75 1.75 0 0115 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.7 1.7 0 01-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 011.217-1.667l5.25-1.68zm.61 1.429a.25.25 0 00-.153 0l-5.25 1.68a.25.25 0 00-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.2.2 0 00.154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.25.25 0 00-.174-.237l-5.25-1.68zM9 10.5a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.75a.75.75 0 10-1.5 0v3a.75.75 0 001.5 0v-3z"></path></svg> <span data-content="Security">Security</span> <include-fragment src="/flutter/gallery/security/overall-count" accept="text/fragment+html"></include-fragment> </a></li> <li class="d-flex"> <a href="/web/20210424062607/https://github.com/flutter/gallery/pulse" data-tab-item="i6insights-tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /flutter/gallery/pulse" data-ga-click="Repository, Navigation click, Insights tab" class="UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item "> <svg class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 1.75a.75.75 0 00-1.5 0v12.5c0 .414.336.75.75.75h14.5a.75.75 0 000-1.5H1.5V1.75zm14.28 2.53a.75.75 0 00-1.06-1.06L10 7.94 7.53 5.47a.75.75 0 00-1.06 0L3.22 8.72a.75.75 0 001.06 1.06L7 7.06l2.47 2.47a.75.75 0 001.06 0l5.25-5.25z"></path></svg> <span data-content="Insights">Insights</span> <span title="Not available" class="Counter "></span> </a></li> </ul> <div style="visibility:hidden;" class="UnderlineNav-actions js-responsive-underlinenav-overflow position-absolute pr-3 pr-md-4 pr-lg-5 right-0"> <details class="details-overlay details-reset position-relative"> <summary role="button"> <div class="UnderlineNav-item mr-0 border-0"> <svg class="octicon octicon-kebab-horizontal" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path></svg> <span class="sr-only">More</span> </div> </summary> <div> <details-menu role="menu" class="dropdown-menu dropdown-menu-sw "> <ul> <li data-menu-item="i0code-tab" hidden> <a role="menuitem" class="js-selected-navigation-item selected dropdown-item" aria-current="page" data-selected-links=" /flutter/gallery" href="/web/20210424062607/https://github.com/flutter/gallery"> Code </a> </li> <li data-menu-item="i1issues-tab" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /flutter/gallery/issues" href="/web/20210424062607/https://github.com/flutter/gallery/issues"> Issues </a> </li> <li data-menu-item="i2pull-requests-tab" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /flutter/gallery/pulls" href="/web/20210424062607/https://github.com/flutter/gallery/pulls"> Pull requests </a> </li> <li data-menu-item="i3actions-tab" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /flutter/gallery/actions" href="/web/20210424062607/https://github.com/flutter/gallery/actions"> Actions </a> </li> <li data-menu-item="i4projects-tab" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /flutter/gallery/projects" href="/web/20210424062607/https://github.com/flutter/gallery/projects"> Projects </a> </li> <li data-menu-item="i5security-tab" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /flutter/gallery/security" href="/web/20210424062607/https://github.com/flutter/gallery/security"> Security </a> </li> <li data-menu-item="i6insights-tab" hidden> <a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /flutter/gallery/pulse" href="/web/20210424062607/https://github.com/flutter/gallery/pulse"> Insights </a> </li> </ul> </details-menu></div> </details></div> </nav> </div> <div class="container-xl clearfix new-discussion-timeline px-3 px-md-4 px-lg-5"> <div id="repo-content-pjax-container" class="repository-content "> <div> <div class="d-none d-lg-block mt-6 mr-3 Popover top-0 right-0 color-shadow-medium col-3"> </div> <div class="gutter-condensed gutter-lg flex-column flex-md-row d-flex"> <div class="flex-shrink-0 col-12 col-md-9 mb-4 mb-md-0"> <div class="file-navigation mb-3 d-flex flex-items-start"> <div class="position-relative"> <details class="details-reset details-overlay mr-0 mb-0 " id="branch-select-menu"> <summary class="btn css-truncate" data-hotkey="w" title="Switch branches or tags"> <svg class="octicon octicon-git-branch text-gray" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122V6A2.5 2.5 0 0110 8.5H6a1 1 0 00-1 1v1.128a2.251 2.251 0 11-1.5 0V5.372a2.25 2.25 0 111.5 0v1.836A2.492 2.492 0 016 7h4a1 1 0 001-1v-.628A2.25 2.25 0 019.5 3.25zM4.25 12a.75.75 0 100 1.5.75.75 0 000-1.5zM3.5 3.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0z"></path></svg> <span class="css-truncate-target" data-menu-button>master</span> <span class="dropdown-caret"></span> </summary> <div class="SelectMenu"> <div class="SelectMenu-modal"> <header class="SelectMenu-header"> <span class="SelectMenu-title">Switch branches/tags</span> <button class="SelectMenu-closeButton" type="button" data-toggle-for="branch-select-menu"><svg aria-label="Close menu" aria-hidden="false" class="octicon octicon-x" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg></button> </header> <input-demux data-action="tab-container-change:input-demux#storeInput tab-container-changed:input-demux#updateInput"> <tab-container class="d-flex flex-column js-branches-tags-tabs" style="min-height: 0;"> <div class="SelectMenu-filter"> <input data-target="input-demux.source" id="context-commitish-filter-field" class="SelectMenu-input form-control" aria-owns="ref-list-branches" data-controls-ref-menu-id="ref-list-branches" autofocus autocomplete="off" aria-label="Filter branches/tags" placeholder="Filter branches/tags" type="text"> </div> <div class="SelectMenu-tabs" role="tablist" data-target="input-demux.control"> <button class="SelectMenu-tab" type="button" role="tab" aria-selected="true">Branches</button> <button class="SelectMenu-tab" type="button" role="tab">Tags</button> </div> <div role="tabpanel" id="ref-list-branches" data-filter-placeholder="Filter branches/tags" class="d-flex flex-column flex-auto overflow-auto" tabindex=""> <ref-selector type="branch" data-targets="input-demux.sinks" data-action=" input-entered:ref-selector#inputEntered tab-selected:ref-selector#tabSelected focus-list:ref-selector#focusFirstListMember " query-endpoint="/flutter/gallery/refs" cache-key="v0:1619242199.939761" current-committish="bWFzdGVy" default-branch="bWFzdGVy" name-with-owner="Zmx1dHRlci9nYWxsZXJ5"> <template data-target="ref-selector.noMatchTemplate"> <div class="SelectMenu-message">Nothing to show</div> </template> <!-- TODO: this max-height is necessary or else the branch list won't scroll. why? --> <div data-target="ref-selector.listContainer" role="menu" class="SelectMenu-list " style="max-height: 330px"> <div class="SelectMenu-loading pt-3 pb-0" aria-label="Menu is loading"> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" viewbox="0 0 16 16" fill="none" width="32" height="32" class="anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"/> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"/> </svg> </div> </div> <template data-target="ref-selector.itemTemplate"> <a href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/tree/{{ urlEncodedRefName }}" class="SelectMenu-item" role="menuitemradio" rel="nofollow" aria-checked="{{ isCurrent }}" data-index="{{ index }}"> <svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg> <span class="flex-1 css-truncate css-truncate-overflow {{ isFilteringClass }}">{{ refName }}</span> <span hidden="{{ isNotDefault }}" class="Label Label--secondary flex-self-start">default</span> </a> </template> <footer class="SelectMenu-footer"><a href="/web/20210424062607/https://github.com/flutter/gallery/branches">View all branches</a></footer> </ref-selector> </div> <div role="tabpanel" id="tags-menu" data-filter-placeholder="Find a tag" class="d-flex flex-column flex-auto overflow-auto" tabindex="" hidden> <ref-selector type="tag" data-action=" input-entered:ref-selector#inputEntered tab-selected:ref-selector#tabSelected focus-list:ref-selector#focusFirstListMember " data-targets="input-demux.sinks" query-endpoint="/flutter/gallery/refs" cache-key="v0:1619242199.939761" current-committish="bWFzdGVy" default-branch="bWFzdGVy" name-with-owner="Zmx1dHRlci9nYWxsZXJ5"> <template data-target="ref-selector.noMatchTemplate"> <div class="SelectMenu-message" data-index="{{ index }}">Nothing to show</div> </template> <template data-target="ref-selector.itemTemplate"> <a href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/tree/{{ urlEncodedRefName }}" class="SelectMenu-item" role="menuitemradio" rel="nofollow" aria-checked="{{ isCurrent }}" data-index="{{ index }}"> <svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg> <span class="flex-1 css-truncate css-truncate-overflow {{ isFilteringClass }}">{{ refName }}</span> <span hidden="{{ isNotDefault }}" class="Label Label--secondary flex-self-start">default</span> </a> </template> <div data-target="ref-selector.listContainer" role="menu" class="SelectMenu-list" style="max-height: 330px"> <div class="SelectMenu-loading pt-3 pb-0" aria-label="Menu is loading"> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" viewbox="0 0 16 16" fill="none" width="32" height="32" class="anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"/> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"/> </svg> </div> </div> <footer class="SelectMenu-footer"><a href="/web/20210424062607/https://github.com/flutter/gallery/tags">View all tags</a></footer> </ref-selector> </div> </tab-container> </input-demux> </div> </div> </details> </div> <div class="flex-self-center ml-3 flex-self-stretch d-none d-lg-flex flex-items-center lh-condensed-ultra"> <a data-pjax href="/web/20210424062607/https://github.com/flutter/gallery/branches" class="Link--primary no-underline"> <svg class="octicon octicon-git-branch text-gray" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122V6A2.5 2.5 0 0110 8.5H6a1 1 0 00-1 1v1.128a2.251 2.251 0 11-1.5 0V5.372a2.25 2.25 0 111.5 0v1.836A2.492 2.492 0 016 7h4a1 1 0 001-1v-.628A2.25 2.25 0 019.5 3.25zM4.25 12a.75.75 0 100 1.5.75.75 0 000-1.5zM3.5 3.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0z"></path></svg> <strong>9</strong> <span class="color-text-tertiary">branches</span> </a> <a data-pjax href="/web/20210424062607/https://github.com/flutter/gallery/tags" class="ml-3 Link--primary no-underline"> <svg class="octicon octicon-tag text-gray" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"></path></svg> <strong>7</strong> <span class="color-text-tertiary">tags</span> </a> </div> <div class="flex-auto"></div> <a class="btn ml-2" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;FIND_FILE_BUTTON&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="32455c8cf85c6c0daa0fb590c63e0cc4883f03002a8f0b3f3cda90f3d2ea2ced" data-ga-click="Repository, find file, location:repo overview" data-hotkey="t" data-pjax="true" href="/web/20210424062607/https://github.com/flutter/gallery/find/master"> Go to file </a> <span class="d-none d-md-flex ml-2"> <get-repo> <details class="position-relative details-overlay details-reset" data-action="toggle:get-repo#onDetailsToggle"> <summary class="btn btn-primary" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;repository_id&quot;:245230215,&quot;target&quot;:&quot;CLONE_OR_DOWNLOAD_BUTTON&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="38768a49d038d696ac0c01aa418216fb0beaf521d0848aa525213b0670d3dddc"> <svg class="octicon octicon-download mr-1" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"></path></svg> Code <span class="dropdown-caret"></span> </summary> <div class="position-relative"> <div class="dropdown-menu dropdown-menu-sw p-0" style="top:6px;width:378px;"> <div data-target="get-repo.modal"> <div class="border-bottom p-3"> <a class="Link--muted float-right tooltipped tooltipped-s" href="https://web.archive.org/web/20210424062607/https://docs.github.com/articles/which-remote-url-should-i-use" target="_blank" aria-label="Which remote URL should I use?"> <svg class="octicon octicon-question" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zM6.92 6.085c.081-.16.19-.299.34-.398.145-.097.371-.187.74-.187.28 0 .553.087.738.225A.613.613 0 019 6.25c0 .177-.04.264-.077.318a.956.956 0 01-.277.245c-.076.051-.158.1-.258.161l-.007.004a7.728 7.728 0 00-.313.195 2.416 2.416 0 00-.692.661.75.75 0 001.248.832.956.956 0 01.276-.245 6.3 6.3 0 01.26-.16l.006-.004c.093-.057.204-.123.313-.195.222-.149.487-.355.692-.662.214-.32.329-.702.329-1.15 0-.76-.36-1.348-.863-1.725A2.76 2.76 0 008 4c-.631 0-1.155.16-1.572.438-.413.276-.68.638-.849.977a.75.75 0 101.342.67z"></path></svg> </a> <div class="text-bold"> <svg class="octicon octicon-terminal mr-3" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z"></path></svg> Clone </div> <tab-container> <div class="UnderlineNav my-2 box-shadow-none"> <div class="UnderlineNav-body" role="tablist"> <button name="button" type="button" role="tab" class="UnderlineNav-item lh-default f6 py-0 px-0 mr-2 position-relative" aria-selected="true" data-hydro-click="{&quot;event_type&quot;:&quot;clone_or_download.click&quot;,&quot;payload&quot;:{&quot;feature_clicked&quot;:&quot;USE_HTTPS&quot;,&quot;git_repository_type&quot;:&quot;REPOSITORY&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="41084963ea08faae524a3b66bc3bc673d623992568eb3d7dce39c37268555f11"> HTTPS </button> <button name="button" type="button" role="tab" class="UnderlineNav-item lh-default f6 py-0 px-0 mr-2 position-relative" data-hydro-click="{&quot;event_type&quot;:&quot;clone_or_download.click&quot;,&quot;payload&quot;:{&quot;feature_clicked&quot;:&quot;USE_GH_CLI&quot;,&quot;git_repository_type&quot;:&quot;REPOSITORY&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b85dda47b479eab127621db18ca038a4ae5f1ed81152bbe3175670efb0308ec5"> GitHub CLI </button> </div> </div> <div role="tabpanel"> <div class="input-group"> <input type="text" class="form-control input-monospace input-sm color-bg-secondary" data-autoselect value="https://github.com/flutter/gallery.git" aria-label="https://github.com/flutter/gallery.git" readonly> <div class="input-group-button"> <clipboard-copy value="https://github.com/flutter/gallery.git" aria-label="Copy to clipboard" class="btn btn-sm" data-hydro-click="{&quot;event_type&quot;:&quot;clone_or_download.click&quot;,&quot;payload&quot;:{&quot;feature_clicked&quot;:&quot;COPY_URL&quot;,&quot;git_repository_type&quot;:&quot;REPOSITORY&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5f21f5e1c66362a750843975cb3673bc3e311660bf597e10ac7153344aa3d6e6"><svg class="octicon octicon-clippy" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></clipboard-copy> </div> </div> <p class="mt-2 mb-0 f6 color-text-secondary"> Use Git or checkout with SVN using the web URL. </p> </div> <div role="tabpanel" hidden> <div class="input-group"> <input type="text" class="form-control input-monospace input-sm color-bg-secondary" data-autoselect value="gh repo clone flutter/gallery" aria-label="gh repo clone flutter/gallery" readonly> <div class="input-group-button"> <clipboard-copy value="gh repo clone flutter/gallery" aria-label="Copy to clipboard" class="btn btn-sm" data-hydro-click="{&quot;event_type&quot;:&quot;clone_or_download.click&quot;,&quot;payload&quot;:{&quot;feature_clicked&quot;:&quot;COPY_URL&quot;,&quot;git_repository_type&quot;:&quot;REPOSITORY&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="5f21f5e1c66362a750843975cb3673bc3e311660bf597e10ac7153344aa3d6e6"><svg class="octicon octicon-clippy" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></clipboard-copy> </div> </div> <p class="mt-2 mb-0 f6 color-text-secondary"> Work fast with our official CLI. <a href="https://web.archive.org/web/20210424062607/https://cli.github.com/" target="_blank">Learn more</a>. </p> </div> </tab-container> </div> <ul class="list-style-none"> <li data-platforms="windows,mac" class="Box-row Box-row--hover-gray p-0 rounded-0 mt-0 js-remove-unless-platform"> <a class="d-flex flex-items-center color-text-primary text-bold no-underline p-3" data-hydro-click="{&quot;event_type&quot;:&quot;clone_or_download.click&quot;,&quot;payload&quot;:{&quot;feature_clicked&quot;:&quot;OPEN_IN_DESKTOP&quot;,&quot;git_repository_type&quot;:&quot;REPOSITORY&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="628044f7a56bc0a12ebce9434f23206f4a5140e45163837cdcc02cb00316a120" data-action="click:get-repo#showDownloadMessage" href="https://web.archive.org/web/20210424062607/https://desktop.github.com/"> <svg class="octicon octicon-desktop-download mr-3" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M4.927 5.427l2.896 2.896a.25.25 0 00.354 0l2.896-2.896A.25.25 0 0010.896 5H8.75V.75a.75.75 0 10-1.5 0V5H5.104a.25.25 0 00-.177.427z"></path><path d="M1.573 2.573a.25.25 0 00-.073.177v7.5a.25.25 0 00.25.25h12.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-3a.75.75 0 110-1.5h3A1.75 1.75 0 0116 2.75v7.5A1.75 1.75 0 0114.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.75.75 0 0111.25 16h-6.5a.75.75 0 01-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 010 10.25v-7.5A1.75 1.75 0 011.75 1h3a.75.75 0 010 1.5h-3a.25.25 0 00-.177.073zM6.982 12a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5H6.982z"></path></svg> Open with GitHub Desktop </a> </li> <li class="Box-row Box-row--hover-gray p-0"> <a class="d-flex flex-items-center color-text-primary text-bold no-underline p-3" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;clone_or_download.click&quot;,&quot;payload&quot;:{&quot;feature_clicked&quot;:&quot;DOWNLOAD_ZIP&quot;,&quot;git_repository_type&quot;:&quot;REPOSITORY&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="95ea96c7c16189e620e3eb37501e8d3e0f146249bf2a53bd0505730fb6a96e58" data-ga-click="Repository, download zip, location:repo overview" data-open-app="link" href="/web/20210424062607/https://github.com/flutter/gallery/archive/refs/heads/master.zip"> <svg class="octicon octicon-file-zip mr-3" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.5 1.75a.25.25 0 01.25-.25h3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h2.086a.25.25 0 01.177.073l2.914 2.914a.25.25 0 01.073.177v8.586a.25.25 0 01-.25.25h-.5a.75.75 0 000 1.5h.5A1.75 1.75 0 0014 13.25V4.664c0-.464-.184-.909-.513-1.237L10.573.513A1.75 1.75 0 009.336 0H3.75A1.75 1.75 0 002 1.75v11.5c0 .649.353 1.214.874 1.515a.75.75 0 10.752-1.298.25.25 0 01-.126-.217V1.75zM8.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM6 5.25a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5A.75.75 0 016 5.25zm2 1.5A.75.75 0 018.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 6.75zm-1.25.75a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM8 9.75A.75.75 0 018.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 9.75zm-.75.75a1.75 1.75 0 00-1.75 1.75v3c0 .414.336.75.75.75h2.5a.75.75 0 00.75-.75v-3a1.75 1.75 0 00-1.75-1.75h-.5zM7 12.25a.25.25 0 01.25-.25h.5a.25.25 0 01.25.25v2.25H7v-2.25z"></path></svg> Download ZIP </a> </li> </ul> </div> <div class="p-3" data-targets="get-repo.platforms" data-platform="mac" hidden> <h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="AnimatedEllipsis"></span></h4> <p class="color-text-secondary">If nothing happens, <a href="https://web.archive.org/web/20210424062607/https://desktop.github.com/">download GitHub Desktop</a> and try again.</p> <button type="button" class="btn-link" data-action="click:get-repo#onDetailsToggle">Go back</button> </div> <div class="p-3" data-targets="get-repo.platforms" data-platform="windows" hidden> <h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="AnimatedEllipsis"></span></h4> <p class="color-text-secondary">If nothing happens, <a href="https://web.archive.org/web/20210424062607/https://desktop.github.com/">download GitHub Desktop</a> and try again.</p> <button type="button" class="btn-link" data-action="click:get-repo#onDetailsToggle">Go back</button> </div> <div class="p-3" data-targets="get-repo.platforms" data-platform="xcode" hidden> <h4 class="lh-condensed mb-3">Launching Xcode<span class="AnimatedEllipsis"></span></h4> <p class="color-text-secondary">If nothing happens, <a href="https://web.archive.org/web/20210424062607/https://developer.apple.com/xcode/">download Xcode</a> and try again.</p> <button type="button" class="btn-link" data-action="click:get-repo#onDetailsToggle">Go back</button> </div> <div class="p-3" data-targets="get-repo.platforms" data-platform="visual-studio" hidden> <h4 class="lh-condensed mb-3">Launching Visual Studio<span class="AnimatedEllipsis"></span></h4> <p class="color-text-secondary">If nothing happens, <a href="https://web.archive.org/web/20210424062607/https://visualstudio.github.com/">download the GitHub extension for Visual Studio</a> and try again.</p> <button type="button" class="btn-link" data-action="click:get-repo#onDetailsToggle">Go back</button> </div> </div> </div> </details> </get-repo> </span> </div> <div class="Box mb-3"> <div class="Box-header Box-header--blue position-relative"> <h2 class="sr-only">Latest commit</h2> <div class="js-details-container Details d-flex rounded-top-1 flex-items-center flex-wrap" data-issue-and-pr-hovercards-enabled> <div class="flex-shrink-0 ml-n1 mr-n1 mt-n1 mb-n1 hx_avatar_stack_commit"> <div class="AvatarStack flex-self-start "> <div class="AvatarStack-body" aria-label="guidezpl"> <a class="avatar avatar-user" style="width:24px;height:24px;" data-skip-pjax="true" data-test-selector="commits-avatar-stack-avatar-link" data-hovercard-type="user" data-hovercard-url="/users/guidezpl/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/guidezpl"> <img data-test-selector="commits-avatar-stack-avatar-image" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/6655696?s=48&amp;v=4" width="24" height="24" alt="@guidezpl" class=" avatar-user"/> </a> </div> </div> </div> <div class="flex-1 d-flex flex-items-center ml-3 min-width-0"> <div class="css-truncate css-truncate-overflow color-text-secondary"> <a href="/web/20210424062607/https://github.com/flutter/gallery/commits?author=guidezpl" class="commit-author user-mention" title="View all commits by guidezpl">guidezpl</a> <span class="d-none d-sm-inline"> <a data-pjax="true" data-test-selector="commit-tease-commit-message" title="Automate play store deployment (1/x) (#483) * Create fastlane setup * x * x" class="Link--primary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750">Automate play store deployment (1/x) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="865954226" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/483" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/483/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/483">#483</a><a data-pjax="true" data-test-selector="commit-tease-commit-message" title="Automate play store deployment (1/x) (#483) * Create fastlane setup * x * x" class="Link--primary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750">)</a> </span> </div> <span class="hidden-text-expander ml-2 d-inline-block "> <button type="button" class="hx_bg-black-fade-15 color-text-primary ellipsis-expander js-details-target" aria-expanded="false"> &hellip; </button> </span> <div class="d-flex flex-auto flex-justify-end ml-3 flex-items-baseline"> <include-fragment accept="text/fragment+html" src="/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750/rollup?direction=sw" class="d-inline"></include-fragment> <a href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750" class="f6 Link--secondary text-mono ml-2 d-none d-lg-inline" data-pjax> 1f28caf </a> <a href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750" class="Link--secondary ml-2" data-pjax> <relative-time datetime="2021-04-24T05:26:22Z" class="no-wrap">Apr 24, 2021</relative-time> </a> </div> </div> <div class="pl-0 pl-md-5 flex-order-1 width-full Details-content--hidden"> <div class="mt-2"> <a data-pjax="true" data-test-selector="commit-tease-commit-message" class="Link--primary text-bold" href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750">Automate play store deployment (1/x) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="865954226" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/483" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/483/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/483">#483</a><a data-pjax="true" data-test-selector="commit-tease-commit-message" class="Link--primary text-bold" href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750">)</a> </div> <pre class="mt-2 text-mono color-text-secondary text-small ws-pre-wrap">* Create fastlane setup * x * x</pre> <div class="d-flex flex-items-center"> <span class="color-text-primary text-mono d-lg-none hx_bg-black-fade-15 px-1 rounded-1 text-small mt-2">1f28caf</span> </div> </div> <div class="flex-shrink-0"> <h2 class="sr-only">Git stats</h2> <ul class="list-style-none d-flex"> <li class="ml-0 ml-md-3"> <a data-pjax href="/web/20210424062607/https://github.com/flutter/gallery/commits/master" class="pl-3 pr-3 py-3 p-md-0 mt-n3 mb-n3 mr-n3 m-md-0 Link--primary no-underline no-wrap"> <svg class="octicon octicon-history text-gray" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"></path></svg> <span class="d-none d-sm-inline"> <strong>348</strong> <span aria-label="Commits on master" class="color-text-secondary d-none d-lg-inline"> commits </span> </span> </a> </li> </ul> </div> </div> </div> <h2 id="files" class="sr-only">Files</h2> <a class="d-none js-permalink-shortcut" data-hotkey="y" href="/web/20210424062607/https://github.com/flutter/gallery/tree/1f28cafc43109fcddda2d4fa71675d1dca859750">Permalink</a> <div class="include-fragment-error flash flash-error flash-full py-2"> <svg class="octicon octicon-alert" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg> Failed to load latest commit information. </div> <div class="js-details-container Details"> <div role="grid" aria-labelledby="files" class="Details-content--hidden-not-important js-navigation-container js-active-navigation-container d-md-block" data-pjax> <div class="sr-only" role="row"> <div role="columnheader">Type</div> <div role="columnheader">Name</div> <div role="columnheader" class="d-none d-md-block">Latest commit message</div> <div role="columnheader">Commit time</div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title=".github" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/.github">.github</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Use writeTimelineToFile (#470) * Use writeTimelineToFile * update goldens * Use `dart test` instead of `flutter test`" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/2bb63d141ae0503bdb36b0f09af45c6844d8b9b0">Use writeTimelineToFile (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="847022720" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/470" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/470/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/470">#470</a><a data-pjax="true" title="Use writeTimelineToFile (#470) * Use writeTimelineToFile * update goldens * Use `dart test` instead of `flutter test`" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/2bb63d141ae0503bdb36b0f09af45c6844d8b9b0">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-31T18:43:30Z" class="no-wrap ">Mar 31, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="android" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/android">android</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Automate play store deployment (1/x) (#483) * Create fastlane setup * x * x" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750">Automate play store deployment (1/x) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="865954226" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/483" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/483/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/483">#483</a><a data-pjax="true" title="Automate play store deployment (1/x) (#483) * Create fastlane setup * x * x" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-04-24T05:26:22Z" class="no-wrap ">Apr 24, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="fonts" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/fonts">fonts</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Use GoogleFonts.RobotoCondensed (#23) * Use GoogleFonts.robotoCondensed * Fix padding Former-commit-id: d984abb8c9024d0e62d0bed22319b205f217b65e" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/138ebd354f48c6931bd74ed5845173c38be167df">Use GoogleFonts.RobotoCondensed (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="587797841" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/23" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/23/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/23">#23</a><a data-pjax="true" title="Use GoogleFonts.RobotoCondensed (#23) * Use GoogleFonts.robotoCondensed * Fix padding Former-commit-id: d984abb8c9024d0e62d0bed22319b205f217b65e" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/138ebd354f48c6931bd74ed5845173c38be167df">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-03-25T15:56:55Z" class="no-wrap ">Mar 25, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="golden_test" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/golden_test">golden_test</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Use writeTimelineToFile (#470) * Use writeTimelineToFile * update goldens * Use `dart test` instead of `flutter test`" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/2bb63d141ae0503bdb36b0f09af45c6844d8b9b0">Use writeTimelineToFile (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="847022720" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/470" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/470/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/470">#470</a><a data-pjax="true" title="Use writeTimelineToFile (#470) * Use writeTimelineToFile * update goldens * Use `dart test` instead of `flutter test`" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/2bb63d141ae0503bdb36b0f09af45c6844d8b9b0">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-31T18:43:30Z" class="no-wrap ">Mar 31, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="integration_test" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/integration_test">integration_test</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Only use deferred loading when building the web app (#362) * Only use deferred loading when building the web app * Update integration test * Add TODO" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/64092b2cc07bf3f0df3f9043a8e20ff685c49087">Only use deferred loading when building the web app (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="729559637" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/362" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/362/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/362">#362</a><a data-pjax="true" title="Only use deferred loading when building the web app (#362) * Only use deferred loading when building the web app * Update integration test * Add TODO" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/64092b2cc07bf3f0df3f9043a8e20ff685c49087">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-10-26T15:40:38Z" class="no-wrap ">Oct 26, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="ios" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/ios">ios</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Update versions (#466) * update versions * Update lower bound * Revert &quot;Update lower bound&quot; This reverts commit 8e3e680c69c3c5c80425404a890d273d52112176." class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/71ec411841138c860a08a3949cedacee30711c11">Update versions (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="841254358" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/466" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/466/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/466">#466</a><a data-pjax="true" title="Update versions (#466) * update versions * Update lower bound * Revert &quot;Update lower bound&quot; This reverts commit 8e3e680c69c3c5c80425404a890d273d52112176." class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/71ec411841138c860a08a3949cedacee30711c11">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-29T16:28:23Z" class="no-wrap ">Mar 29, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="lib" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/lib">lib</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Remove the AnimatedSize vsync parameter (#480) This is needed in order to land https://github.com/flutter/flutter/pull/80554, which will deprecate AnimatedSize.vsync" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/e06144fe0c2084d5f9d0c90a070f33009a497af1">Remove the AnimatedSize vsync parameter (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="863281802" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/480" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/480/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/480">#480</a><a data-pjax="true" title="Remove the AnimatedSize vsync parameter (#480) This is needed in order to land https://github.com/flutter/flutter/pull/80554, which will deprecate AnimatedSize.vsync" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/e06144fe0c2084d5f9d0c90a070f33009a497af1">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-04-22T20:33:06Z" class="no-wrap ">Apr 22, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="linux" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/linux">linux</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Remove GTK backend check on Linux (Wayland is now supported) (#455) * Remove GTK backend check on Linux (Wayland is now supported) * recreate /linux with flutter create Co-authored-by: Pierre-Louis <6655696+guidezpl@users.noreply.github.com> Co-authored-by: Pierre-Louis <plg@google.com>" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/67e4cfca26af200e5b381d776027aa7328480652">Remove GTK backend check on Linux (Wayland is now supported) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="828068899" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/455" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/455/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/455">#455</a><a data-pjax="true" title="Remove GTK backend check on Linux (Wayland is now supported) (#455) * Remove GTK backend check on Linux (Wayland is now supported) * recreate /linux with flutter create Co-authored-by: Pierre-Louis <6655696+guidezpl@users.noreply.github.com> Co-authored-by: Pierre-Louis <plg@google.com>" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/67e4cfca26af200e5b381d776027aa7328480652">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-25T19:43:54Z" class="no-wrap ">Mar 25, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="macos" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/macos">macos</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Update versions (#451)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/13c685f313f93ab67b88272ae0b1ac0f888f42a9">Update versions (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="823266650" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/451" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/451/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/451">#451</a><a data-pjax="true" title="Update versions (#451)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/13c685f313f93ab67b88272ae0b1ac0f888f42a9">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-25T19:17:17Z" class="no-wrap ">Mar 25, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="test" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/test">test</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Disable benchmarks test (#464) * Disable benchmarks test * Don't use MaterialIcons codepoints directly" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/3fc3d3b2125be5777e92379a9f2cf047f86e65f8">Disable benchmarks test (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="841083888" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/464" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/464/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/464">#464</a><a data-pjax="true" title="Disable benchmarks test (#464) * Disable benchmarks test * Don't use MaterialIcons codepoints directly" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/3fc3d3b2125be5777e92379a9f2cf047f86e65f8">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-25T19:05:27Z" class="no-wrap ">Mar 25, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="test_driver" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/test_driver">test_driver</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Use writeTimelineToFile (#470) * Use writeTimelineToFile * update goldens * Use `dart test` instead of `flutter test`" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/2bb63d141ae0503bdb36b0f09af45c6844d8b9b0">Use writeTimelineToFile (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="847022720" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/470" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/470/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/470">#470</a><a data-pjax="true" title="Use writeTimelineToFile (#470) * Use writeTimelineToFile * update goldens * Use `dart test` instead of `flutter test`" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/2bb63d141ae0503bdb36b0f09af45c6844d8b9b0">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-31T18:43:30Z" class="no-wrap ">Mar 31, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="tool" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/tool">tool</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Only use deferred loading when building the web app (#362) * Only use deferred loading when building the web app * Update integration test * Add TODO" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/64092b2cc07bf3f0df3f9043a8e20ff685c49087">Only use deferred loading when building the web app (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="729559637" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/362" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/362/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/362">#362</a><a data-pjax="true" title="Only use deferred loading when building the web app (#362) * Only use deferred loading when building the web app * Update integration test * Add TODO" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/64092b2cc07bf3f0df3f9043a8e20ff685c49087">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-10-26T15:40:38Z" class="no-wrap ">Oct 26, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="web" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/web">web</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Use new macOS build system (#397) * Remove 16x16 web favicon * Regen macos * Flutter run * Regen macos * Run * Restore height * Run once * Run again * Update project.pbxproj" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/b931265dbc437ac68b918fc6d0831f52ae006d40">Use new macOS build system (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="772860736" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/397" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/397/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/397">#397</a><a data-pjax="true" title="Use new macOS build system (#397) * Remove 16x16 web favicon * Regen macos * Flutter run * Regen macos * Run * Restore height * Run once * Run again * Update project.pbxproj" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/b931265dbc437ac68b918fc6d0831f52ae006d40">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-12-24T10:49:42Z" class="no-wrap ">Dec 24, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="Directory" class="octicon octicon-file-directory hx_color-icon-directory" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="windows" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/tree/master/windows">windows</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Update versions (#451)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/13c685f313f93ab67b88272ae0b1ac0f888f42a9">Update versions (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="823266650" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/451" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/451/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/451">#451</a><a data-pjax="true" title="Update versions (#451)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/13c685f313f93ab67b88272ae0b1ac0f888f42a9">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-25T19:17:17Z" class="no-wrap ">Mar 25, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title=".firebaserc" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/.firebaserc">.firebaserc</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Update .firebaserc (#145) * Update .firebaserc * Fix goldens Former-commit-id: d5444df890a59c1a5b7f9089c807eaff99d61d98" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/0b4ee0f0607f946626e40ce546cc6b9a1530d05a">Update .firebaserc (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="612790621" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/145" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/145/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/145">#145</a><a data-pjax="true" title="Update .firebaserc (#145) * Update .firebaserc * Fix goldens Former-commit-id: d5444df890a59c1a5b7f9089c807eaff99d61d98" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/0b4ee0f0607f946626e40ce546cc6b9a1530d05a">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-05-06T09:52:49Z" class="no-wrap ">May 6, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title=".gitignore" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/.gitignore">.gitignore</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Add golden tests infrastructure, and golden tests for the home page (#117) * Add goldens tests * Add comments. * Only run tests for macOS * Move to golden_test * Add README.md * Split Github Actions workflows into different files * Add golden failures to gitignore * Upload golden failures artifacts * Update home page to intentionally fail * Correct path * Add screenshot to README for golden_test and point to README when the golden tests fail. * Fix analyze error * Revert &quot;Update home page to intentionally fail&quot; This reverts commit 52d375fc9d7da3b660d4621b352e9b4d43fc3d96. * Fix update goldens command * Add test for home page * Add license to util file * Undo change in pubspec.yaml * Update README.md about font loading and shadows * Add tear down to clear test values for window Former-commit-id: 21731c10d75c92ffbdfc60b3a452a7dc7bf4bfcc" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/d551b5b037da749cbbc036eed33cfb563b157ef0">Add golden tests infrastructure, and golden tests for the home page (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="605553864" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/117" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/117/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/117">#…</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-04-27T11:01:40Z" class="no-wrap ">Apr 27, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title=".metadata" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/.metadata">.metadata</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="[Gallery] Fix directory structure (#312) Former-commit-id: 312ddf161fd948726c1c249b81e7b8f6aa16a62f" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/2f803ebd369e8995aedb6ac1e6cdbb4101864b30">[Gallery] Fix directory structure (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="703352552" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/312" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/312/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/312">#312</a><a data-pjax="true" title="[Gallery] Fix directory structure (#312) Former-commit-id: 312ddf161fd948726c1c249b81e7b8f6aa16a62f" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/2f803ebd369e8995aedb6ac1e6cdbb4101864b30">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-02-05T19:11:54Z" class="no-wrap ">Feb 5, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="CHANGELOG.md" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/CHANGELOG.md">CHANGELOG.md</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Automate play store deployment (1/x) (#483) * Create fastlane setup * x * x" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750">Automate play store deployment (1/x) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="865954226" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/483" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/483/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/483">#483</a><a data-pjax="true" title="Automate play store deployment (1/x) (#483) * Create fastlane setup * x * x" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/1f28cafc43109fcddda2d4fa71675d1dca859750">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-04-24T05:26:22Z" class="no-wrap ">Apr 24, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="LICENSE" data-pjax="#repo-content-pjax-container" itemprop="license" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/LICENSE">LICENSE</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Initial commit" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/4eb371a156b0ed3ac2e97df4c03db768ecb8bfad">Initial commit</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-03-05T17:46:13Z" class="no-wrap ">Mar 5, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="README.md" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/README.md">README.md</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Add information about test pinning (#474)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/a383881b5a4fea4ec018e13fa78c272ab761f56b">Add information about test pinning (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="856677595" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/474" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/474/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/474">#474</a><a data-pjax="true" title="Add information about test pinning (#474)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/a383881b5a4fea4ec018e13fa78c272ab761f56b">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-04-13T17:36:54Z" class="no-wrap ">Apr 13, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="analysis_options.yaml" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/analysis_options.yaml">analysis_options.yaml</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Add new lints (#96) * Update pedantic to 1.9.0 * Remove duplicated lints * Add pedantic to dev_dependencies * Fix typo * Ignore omit_local_variable_types errors * Update code_segments.dart * Add const to Icon and Interval * Update analysis_options.yaml * Apply omit_local_variable_type Former-commit-id: 74d9d92883c6ca10742c44df309f065289cf2f55" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/25561dff05c0ff5c42d429bb460d31bafed15d28">Add new lints (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="597776259" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/96" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/96/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/96">#96</a><a data-pjax="true" title="Add new lints (#96) * Update pedantic to 1.9.0 * Remove duplicated lints * Add pedantic to dev_dependencies * Fix typo * Ignore omit_local_variable_types errors * Update code_segments.dart * Add const to Icon and Interval * Update analysis_options.yaml * Apply omit_local_variable_type Former-commit-id: 74d9d92883c6ca10742c44df309f065289cf2f55" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/25561dff05c0ff5c42d429bb460d31bafed15d28">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-04-10T19:01:24Z" class="no-wrap ">Apr 10, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="deferred_components_loading_units.yaml" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/deferred_components_loading_units.yaml">deferred_components_loading_units.yaml</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Build `crane` demo as deferred component (#461)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/30ddc0fe5765972fe7ccbf53b9b0751d87272841">Build `crane` demo as deferred component (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="838164651" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/461" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/461/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/461">#461</a><a data-pjax="true" title="Build `crane` demo as deferred component (#461)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/30ddc0fe5765972fe7ccbf53b9b0751d87272841">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-29T21:23:40Z" class="no-wrap ">Mar 29, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="firebase.json" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/firebase.json">firebase.json</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Add basic firebase hosting files (#113) Former-commit-id: 66f48477011f5788d5999adfa6abb9d85ab200e1" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/c8bd1ed52b1d24a42cba28be62a7e2abbc7b3373">Add basic firebase hosting files (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="604125648" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/113" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/113/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/113">#113</a><a data-pjax="true" title="Add basic firebase hosting files (#113) Former-commit-id: 66f48477011f5788d5999adfa6abb9d85ab200e1" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/c8bd1ed52b1d24a42cba28be62a7e2abbc7b3373">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-04-21T17:20:31Z" class="no-wrap ">Apr 21, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="l10n.yaml" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/l10n.yaml">l10n.yaml</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Only use deferred loading when building the web app (#362) * Only use deferred loading when building the web app * Update integration test * Add TODO" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/64092b2cc07bf3f0df3f9043a8e20ff685c49087">Only use deferred loading when building the web app (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="729559637" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/362" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/362/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/362">#362</a><a data-pjax="true" title="Only use deferred loading when building the web app (#362) * Only use deferred loading when building the web app * Update integration test * Add TODO" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/64092b2cc07bf3f0df3f9043a8e20ff685c49087">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-10-26T15:40:38Z" class="no-wrap ">Oct 26, 2020</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="pubspec.lock" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/pubspec.lock">pubspec.lock</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Fix onKey handler return values (#473) This fixes the return values for the onKey handlers used in the gallery code to use the newer KeyEventResult values, rather than bools. The use of the bools will soon be deprecated." class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/4655d32d9d4724809ff2825d5469ff6f311c2cae">Fix onKey handler return values (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="856292471" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/473" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/473/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/473">#473</a><a data-pjax="true" title="Fix onKey handler return values (#473) This fixes the return values for the onKey handlers used in the gallery code to use the newer KeyEventResult values, rather than bools. The use of the bools will soon be deprecated." class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/4655d32d9d4724809ff2825d5469ff6f311c2cae">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-04-12T20:53:29Z" class="no-wrap ">Apr 12, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="pubspec.yaml" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/pubspec.yaml">pubspec.yaml</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Build `crane` demo as deferred component (#461)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/30ddc0fe5765972fe7ccbf53b9b0751d87272841">Build `crane` demo as deferred component (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="838164651" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/461" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/461/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/461">#461</a><a data-pjax="true" title="Build `crane` demo as deferred component (#461)" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/30ddc0fe5765972fe7ccbf53b9b0751d87272841">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2021-03-29T21:23:40Z" class="no-wrap ">Mar 29, 2021</time-ago> </div> </div> <div role="row" class="Box-row Box-row--focus-gray py-2 d-flex position-relative js-navigation-item "> <div role="gridcell" class="mr-3 flex-shrink-0" style="width: 16px;"> <svg aria-label="File" class="octicon octicon-file color-icon-tertiary" height="16" viewbox="0 0 16 16" version="1.1" width="16" role="img"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"></path></svg> </div> <div role="rowheader" class="flex-auto min-width-0 col-md-2 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"><a class="js-navigation-open Link--primary" title="screenshots.md" data-pjax="#repo-content-pjax-container" href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/screenshots.md">screenshots.md</a></span> </div> <div role="gridcell" class="flex-auto min-width-0 d-none d-md-block col-5 mr-3"> <span class="css-truncate css-truncate-target d-block width-fit"> <a data-pjax="true" title="Update mac screenshots (#165) Former-commit-id: b0e3ae871d7ea5b1f09f470a96eb4dccb54655a3" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/d6d55a76bae242f6bdd7326cccce2604aee751ee">Update mac screenshots (</a><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="621838932" data-permission-text="Title is private" data-url="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/issues/165" data-hovercard-type="pull_request" data-hovercard-url="/flutter/gallery/pull/165/hovercard" href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/pull/165">#165</a><a data-pjax="true" title="Update mac screenshots (#165) Former-commit-id: b0e3ae871d7ea5b1f09f470a96eb4dccb54655a3" class="Link--secondary" href="/web/20210424062607/https://github.com/flutter/gallery/commit/d6d55a76bae242f6bdd7326cccce2604aee751ee">)</a> </span> </div> <div role="gridcell" class="color-text-tertiary text-right" style="width:100px;"> <time-ago datetime="2020-05-29T13:19:16Z" class="no-wrap ">May 29, 2020</time-ago> </div> </div> </div> <div class="Details-content--shown Box-footer d-md-none p-0"> <button type="button" class="d-block btn-link js-details-target width-full px-3 py-2" aria-expanded="false"> View code </button> </div> </div> </div> <readme-toc> <div id="readme" class="Box md js-code-block-container Box--responsive"> <div class="d-flex js-sticky js-position-sticky top-0 border-top-0 border-bottom p-2 flex-items-center flex-justify-between color-bg-primary rounded-top-2" style="position: sticky; z-index: 90;"> <div class="d-flex flex-items-center"> <details data-target="readme-toc.trigger" data-menu-hydro-click="{&quot;event_type&quot;:&quot;repository_toc_menu.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;trigger&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-menu-hydro-click-hmac="591372e323037808298a4d4003b925b72a3a718594cfb964b8eb53c1d649e2b9" class="dropdown details-reset details-overlay"> <summary class="btn btn-octicon m-0 box-shadow-none mr-2 p-2" aria-haspopup="true" aria-label="Table of Contents"> <svg height="16" class="octicon octicon-list-unordered" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path></svg> </summary> <details-menu class="SelectMenu" role="menu"> <div class="SelectMenu-modal rounded-3 mt-1" style="max-height:340px;"> <div class="SelectMenu-list SelectMenu-list--borderless p-2" style="overscroll-behavior: contain;"> <a role="menuitem" class="filter-item py-1 text-emphasized" style="padding-left: 12px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{&quot;event_type&quot;:&quot;repository_toc_menu.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;entry&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="64c332f2656e0390552ae0caab5cfeaa32c648e3f410010ba5d030735fe574a7" href="#flutter-gallery">Flutter Gallery</a> <a role="menuitem" class="filter-item py-1 " style="padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{&quot;event_type&quot;:&quot;repository_toc_menu.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;entry&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="64c332f2656e0390552ae0caab5cfeaa32c648e3f410010ba5d030735fe574a7" href="#running-flutter-gallery-on-flutters-master-channel">Running Flutter Gallery on Flutter's master channel</a> <a role="menuitem" class="filter-item py-1 " style="padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{&quot;event_type&quot;:&quot;repository_toc_menu.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;entry&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="64c332f2656e0390552ae0caab5cfeaa32c648e3f410010ba5d030735fe574a7" href="#supported-platforms">Supported Platforms</a> <a role="menuitem" class="filter-item py-1 " style="padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{&quot;event_type&quot;:&quot;repository_toc_menu.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;entry&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="64c332f2656e0390552ae0caab5cfeaa32c648e3f410010ba5d030735fe574a7" href="#to-include-a-new-splash-animation">To include a new splash animation</a> <a role="menuitem" class="filter-item py-1 " style="padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{&quot;event_type&quot;:&quot;repository_toc_menu.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;entry&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="64c332f2656e0390552ae0caab5cfeaa32c648e3f410010ba5d030735fe574a7" href="#generating-localizations">Generating localizations</a> <a role="menuitem" class="filter-item py-1 " style="padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{&quot;event_type&quot;:&quot;repository_toc_menu.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;entry&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="64c332f2656e0390552ae0caab5cfeaa32c648e3f410010ba5d030735fe574a7" href="#generating-highlighted-code-segments">Generating highlighted code segments</a> <a role="menuitem" class="filter-item py-1 " style="padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{&quot;event_type&quot;:&quot;repository_toc_menu.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;entry&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="64c332f2656e0390552ae0caab5cfeaa32c648e3f410010ba5d030735fe574a7" href="#creating-a-new-release-for-flutter-org-members">Creating a new release (for Flutter org members)</a> <a role="menuitem" class="filter-item py-1 " style="padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{&quot;event_type&quot;:&quot;repository_toc_menu.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;entry&quot;,&quot;repository_id&quot;:245230215,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="64c332f2656e0390552ae0caab5cfeaa32c648e3f410010ba5d030735fe574a7" href="#tests">Tests</a> </div> </div> </details-menu> </details> <h2 class="Box-title"> <a href="#readme" class="Link--primary ">README.md</a> </h2> </div> </div> <div class="Popover anim-scale-in js-tagsearch-popover" hidden data-tagsearch-url="/flutter/gallery/find-definition" data-tagsearch-ref="master" data-tagsearch-path="README.md" data-tagsearch-lang="Markdown" data-hydro-click="{&quot;event_type&quot;:&quot;code_navigation.click_on_symbol&quot;,&quot;payload&quot;:{&quot;action&quot;:&quot;click_on_symbol&quot;,&quot;repository_id&quot;:245230215,&quot;ref&quot;:&quot;master&quot;,&quot;language&quot;:&quot;Markdown&quot;,&quot;originating_url&quot;:&quot;https://github.com/flutter/gallery&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1cb3040719cc3ddb731f1015dae1227fb255e6213ea67b520406658d4ca8c031"> <div class="Popover-message Popover-message--large Popover-message--top-left TagsearchPopover mt-1 mb-4 mx-auto Box color-shadow-large"> <div class="TagsearchPopover-content js-tagsearch-popover-content overflow-auto" style="will-change:transform;"> </div> </div> </div> <div data-target="readme-toc.content" class="Box-body px-5 pb-5"> <article class="markdown-body entry-content container-lg" itemprop="text"><h1><a id="user-content-flutter-gallery" class="anchor" aria-hidden="true" href="#flutter-gallery"><svg class="octicon octicon-link" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Flutter Gallery</h1> <p>Flutter Gallery is a resource to help developers evaluate and use Flutter. It is a collection of Material Design &amp; Cupertino widgets, behaviors, and vignettes implemented with Flutter. We often get asked how one can see Flutter in action, and this gallery demonstrates what Flutter provides and how it behaves in the wild.</p> <p><a target="_blank" rel="noopener noreferrer" href="https://web.archive.org/web/20210424062607/https://user-images.githubusercontent.com/6655696/73928238-0d7fcc80-48d3-11ea-8a7e-ea7dc5d6e713.png"><img src="https://web.archive.org/web/20210424062607im_/https://user-images.githubusercontent.com/6655696/73928238-0d7fcc80-48d3-11ea-8a7e-ea7dc5d6e713.png" alt="Flutter Gallery" style="max-width:100%;"></a></p> <h2><a id="user-content-running-flutter-gallery-on-flutters-master-channel" class="anchor" aria-hidden="true" href="#running-flutter-gallery-on-flutters-master-channel"><svg class="octicon octicon-link" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Running Flutter Gallery on Flutter's master channel</h2> <p>The Flutter Gallery targets Flutter's master channel. As such, it can take advantage of new SDK features that haven't landed in the stable channel.</p> <p>If you'd like to run the Flutter Gallery, make sure to switch to the master channel first:</p> <div class="highlight highlight-source-shell"><pre>flutter channel master flutter upgrade</pre></div> <p>When you're done, use this command to return to the safety of the stable channel:</p> <div class="highlight highlight-source-shell"><pre>flutter channel stable flutter upgrade</pre></div> <h2><a id="user-content-supported-platforms" class="anchor" aria-hidden="true" href="#supported-platforms"><svg class="octicon octicon-link" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Supported Platforms</h2> <p>Flutter Gallery has been built to support multiple platforms. This includes:</p> <ul> <li>Android</li> <li>iOS</li> <li>web</li> <li>macOS</li> <li>Linux</li> <li>Windows</li> </ul> <p>An APK, macOS, Linux, and Windows builds are available for <a href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/releases">download</a>. You can find it on the web at <a href="https://web.archive.org/web/20210424062607/https://gallery.flutter.dev/" rel="nofollow">gallery.flutter.dev</a> and on the <a href="https://web.archive.org/web/20210424062607/https://play.google.com/store/apps/details?id=io.flutter.demo.gallery" rel="nofollow">Google Play Store</a>.</p> <p>You can build from source yourself for any of these platforms, though, please note desktop support must <a href="https://web.archive.org/web/20210424062607/https://github.com/flutter/flutter/wiki/Desktop-shells#tooling">be enabled</a>. For example, to run the app on Windows:</p> <div class="highlight highlight-source-shell"><pre><span class="pl-c1">cd</span> gallery/ flutter config --enable-windows-desktop flutter create <span class="pl-c1">.</span> flutter run -d windows</pre></div> <p>Additionally, the UI adapts between mobile and desktop layouts regardless of the platform it runs on. This is determined based on window size as outlined in <a href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/lib/layout/adaptive.dart">adaptive.dart</a>.</p> <h2><a id="user-content-to-include-a-new-splash-animation" class="anchor" aria-hidden="true" href="#to-include-a-new-splash-animation"><svg class="octicon octicon-link" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>To include a new splash animation</h2> <ol> <li> <p>Convert your animation to a <code>.gif</code> file. Ideally, use a background color of <code>0xFF030303</code> to ensure the animation blends into the background of the app.</p> </li> <li> <p>Add your new <code>.gif</code> file to the assets directory under <code>assets/splash_effects</code>. Ensure the name follows the format <code>splash_effect_$num.gif</code>. The number should be the next number after the current largest number in the repository.</p> </li> <li> <p>Update the map <code>_effectDurations</code> in <a href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/lib/pages/splash.dart">splash.dart</a> to include the number of the new <code>.gif</code> as well as its estimated duration. The duration is used to determine how long to display the splash animation at launch.</p> </li> </ol> <h2><a id="user-content-generating-localizations" class="anchor" aria-hidden="true" href="#generating-localizations"><svg class="octicon octicon-link" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Generating localizations</h2> <p>If this is the first time building the Flutter gallery, the localized code will not be present in the project directory. However, after running the application for the first time, a synthetic package will be generated containing the app's localizations through importing <code>package:flutter_gen/gen_l10n/</code>.</p> <p>See separate <a href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/lib/l10n/README.md">README</a> for more details.</p> <h2><a id="user-content-generating-highlighted-code-segments" class="anchor" aria-hidden="true" href="#generating-highlighted-code-segments"><svg class="octicon octicon-link" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Generating highlighted code segments</h2> <p>To generate highlighted code segments, make sure that you have <a href="https://web.archive.org/web/20210424062607/https://pub.dev/packages/grinder" rel="nofollow">grinder</a> installed by running</p> <div class="highlight highlight-source-shell"><pre>flutter pub get</pre></div> <p>To generate code segments (see separate <a href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/tool/codeviewer_cli/README.md">README</a> for more details):</p> <div class="highlight highlight-source-shell"><pre>flutter pub run grinder update-code-segments</pre></div> <h2><a id="user-content-creating-a-new-release-for-flutter-org-members" class="anchor" aria-hidden="true" href="#creating-a-new-release-for-flutter-org-members"><svg class="octicon octicon-link" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Creating a new release (for Flutter org members)</h2> <ol> <li> <p>Create a PR to bump the version number up in <code>pubspec.yaml</code>. Use <a href="https://web.archive.org/web/20210424062607/https://semver.org/" rel="nofollow">semantic versioning</a> to determine which number to increment. The version number after the <code>+</code>should also be incremented. For example <code>1.2.3+010203</code> with a patch should become <code>1.2.4+010204</code>.</p> </li> <li> <p>Create a tag on master branch after the version bump PR is merged. This will start a Github Actions job that will draft a release with desktop applications and apk included.</p> <div class="highlight highlight-source-shell"><pre>git pull upstream master git tag v1.2.3 git push upstream v1.2.3</pre></div> </li> <li> <p>Publish the firebase hosted web release.</p> <ul> <li>Log in to the account that has write access to <code>gallery-flutter-dev</code> with <code>firebase login</code></li> <li><code>flutter pub run grinder build-web</code></li> <li><code>firebase deploy -P prod</code> to deploy to production (equivalent to <code>firebase deploy</code>).</li> <li><code>firebase deploy -P staging</code> to deploy to staging. Check with the team to see if the staging instance is currently used for a special purpose.</li> </ul> </li> <li> <p>Write some release notes about what changes have been done since the last release.</p> </li> <li> <p>Publish the Android release</p> <ul> <li>Ensure you have the correct signing certificates.</li> <li>Create the app bundle with <code>flutter build appbundle</code>.</li> <li>Include the release notes in "What's new".</li> <li>Upload to the Play store console and publish.</li> </ul> </li> <li> <p>Go to <a href="https://web.archive.org/web/20210424062607/https://github.com/flutter/gallery/releases">Releases</a> and see the latest draft.</p> <ul> <li>Include the release notes in the description.</li> <li>Publish the release.</li> </ul> </li> </ol> <h2><a id="user-content-tests" class="anchor" aria-hidden="true" href="#tests"><svg class="octicon octicon-link" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Tests</h2> <p>The gallery has its own set of unit and integration tests. Flutter itself also uses it in tests. To enable breaking changes, the gallery version is pinned in two places:</p> <ul> <li><code>flutter analyze</code>: <a href="https://web.archive.org/web/20210424062607/https://github.com/flutter/tests/blob/master/registry/flutter_gallery.test">https://github.com/flutter/tests/blob/master/registry/flutter_gallery.test</a></li> <li>DeviceLab tests: <a href="https://web.archive.org/web/20210424062607/https://github.com/flutter/flutter/blob/master/dev/devicelab/lib/versions/gallery.dart">https://github.com/flutter/flutter/blob/master/dev/devicelab/lib/versions/gallery.dart</a></li> </ul> </article> </div> </div> </readme-toc> </div> <div class="flex-shrink-0 col-12 col-md-3"> <div class="BorderGrid BorderGrid--spacious" data-pjax> <div class="BorderGrid-row hide-sm hide-md"> <div class="BorderGrid-cell"> <h2 class="mb-3 h4">About</h2> <p class="f4 mt-3"> Flutter Gallery is a resource to help developers evaluate and use Flutter </p> <div class="mt-3 d-flex flex-items-center"> <svg class="octicon octicon-link flex-shrink-0 mr-2" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg> <span class="flex-auto min-width-0 css-truncate css-truncate-target width-fit"> <a title="https://gallery.flutter.dev" role="link" target="_blank" class="text-bold" rel="noopener noreferrer" href="https://web.archive.org/web/20210424062607/https://gallery.flutter.dev/">gallery.flutter.dev</a> </span> </div> <h3 class="sr-only">Topics</h3> <div class="mt-3"> <div class="f6"> <a data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:dart" href="/web/20210424062607/https://github.com/topics/dart" title="Topic: dart" class="topic-tag topic-tag-link "> dart </a> <a data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:flutter" href="/web/20210424062607/https://github.com/topics/flutter" title="Topic: flutter" class="topic-tag topic-tag-link "> flutter </a> </div> </div> <h3 class="sr-only">Resources</h3> <div class="mt-3"> <a class="Link--muted" href="#readme"> <svg class="octicon octicon-book mr-2" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 1.75A.75.75 0 01.75 1h4.253c1.227 0 2.317.59 3 1.501A3.744 3.744 0 0111.006 1h4.245a.75.75 0 01.75.75v10.5a.75.75 0 01-.75.75h-4.507a2.25 2.25 0 00-1.591.659l-.622.621a.75.75 0 01-1.06 0l-.622-.621A2.25 2.25 0 005.258 13H.75a.75.75 0 01-.75-.75V1.75zm8.755 3a2.25 2.25 0 012.25-2.25H14.5v9h-3.757c-.71 0-1.4.201-1.992.572l.004-7.322zm-1.504 7.324l.004-5.073-.002-2.253A2.25 2.25 0 005.003 2.5H1.5v9h3.757a3.75 3.75 0 011.994.574z"></path></svg> Readme </a> </div> <h3 class="sr-only">License</h3> <div class="mt-3"> <a href="/web/20210424062607/https://github.com/flutter/gallery/blob/master/LICENSE" class="Link--muted"> <svg class="octicon octicon-law mr-2" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.75.75a.75.75 0 00-1.5 0V2h-.984c-.305 0-.604.08-.869.23l-1.288.737A.25.25 0 013.984 3H1.75a.75.75 0 000 1.5h.428L.066 9.192a.75.75 0 00.154.838l.53-.53-.53.53v.001l.002.002.002.002.006.006.016.015.045.04a3.514 3.514 0 00.686.45A4.492 4.492 0 003 11c.88 0 1.556-.22 2.023-.454a3.515 3.515 0 00.686-.45l.045-.04.016-.015.006-.006.002-.002.001-.002L5.25 9.5l.53.53a.75.75 0 00.154-.838L3.822 4.5h.162c.305 0 .604-.08.869-.23l1.289-.737a.25.25 0 01.124-.033h.984V13h-2.5a.75.75 0 000 1.5h6.5a.75.75 0 000-1.5h-2.5V3.5h.984a.25.25 0 01.124.033l1.29.736c.264.152.563.231.868.231h.162l-2.112 4.692a.75.75 0 00.154.838l.53-.53-.53.53v.001l.002.002.002.002.006.006.016.015.045.04a3.517 3.517 0 00.686.45A4.492 4.492 0 0013 11c.88 0 1.556-.22 2.023-.454a3.512 3.512 0 00.686-.45l.045-.04.01-.01.006-.005.006-.006.002-.002.001-.002-.529-.531.53.53a.75.75 0 00.154-.838L13.823 4.5h.427a.75.75 0 000-1.5h-2.234a.25.25 0 01-.124-.033l-1.29-.736A1.75 1.75 0 009.735 2H8.75V.75zM1.695 9.227c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327l-1.305 2.9zm10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327l-1.305 2.9z"></path></svg> BSD-3-Clause License </a> </div> </div> </div> <div class="BorderGrid-row"> <div class="BorderGrid-cell"> <h2 class="h4 mb-3"> <a href="/web/20210424062607/https://github.com/flutter/gallery/releases" class="Link--primary no-underline "> Releases <span title="7" class="Counter ">7</span> </a></h2> <a class="Link--primary d-flex no-underline" href="/web/20210424062607/https://github.com/flutter/gallery/releases/tag/v2.8.1"> <svg class="octicon octicon-tag flex-shrink-0 mt-1 color-text-success" height="16" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"></path></svg> <div class="ml-2 min-width-0"> <div class="d-flex"> <span class="css-truncate css-truncate-target text-bold mr-2" style="max-width: none;">Flutter Gallery 2.8.1</span> <span title="Label: Latest" class="Label Label--success flex-shrink-0"> Latest </span> </div> <div class="text-small color-text-secondary"><relative-time datetime="2020-09-18T10:43:00Z" class="no-wrap">Sep 18, 2020</relative-time></div> </div> </a> <div class="mt-3"> <a href="/web/20210424062607/https://github.com/flutter/gallery/releases" class="text-small"> + 6 releases </a></div> </div> </div> <div class="BorderGrid-row" hidden> <div class="BorderGrid-cell"> <include-fragment src="/flutter/gallery/used_by_list" accept="text/fragment+html"> </include-fragment> </div> </div> <div class="BorderGrid-row"> <div class="BorderGrid-cell"> <h2 class="h4 mb-3"> <a href="/web/20210424062607/https://github.com/flutter/gallery/graphs/contributors" class="Link--primary no-underline "> Contributors <span title="48" class="Counter ">48</span> </a></h2> <ul class="list-style-none d-flex flex-wrap mb-n2"> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/rami-a/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/rami-a"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/2364772?s=64&amp;v=4" width="32" height="32" alt="@rami-a"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/perclasson/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/perclasson"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/1770678?s=64&amp;v=4" width="32" height="32" alt="@perclasson"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/guidezpl/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/guidezpl"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/6655696?s=64&amp;v=4" width="32" height="32" alt="@guidezpl"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/clocksmith/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/clocksmith"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/591699?s=64&amp;v=4" width="32" height="32" alt="@clocksmith"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/shihaohong/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/shihaohong"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/27032613?s=64&amp;v=4" width="32" height="32" alt="@shihaohong"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/Renzo-Olivares/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/Renzo-Olivares"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/948037?s=64&amp;v=4" width="32" height="32" alt="@Renzo-Olivares"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/JoseAlba/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/JoseAlba"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/16763114?s=64&amp;v=4" width="32" height="32" alt="@JoseAlba"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/domesticmouse/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/domesticmouse"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/30503?s=64&amp;v=4" width="32" height="32" alt="@domesticmouse"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/pennzht/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/pennzht"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/23219899?s=64&amp;v=4" width="32" height="32" alt="@pennzht"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/Alabhya268/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/Alabhya268"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/57143358?s=64&amp;v=4" width="32" height="32" alt="@Alabhya268"/> </a> </li> <li class="mb-2 mr-2"> <a class="" data-hovercard-type="user" data-hovercard-url="/users/ferhatb/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/web/20210424062607/https://github.com/ferhatb"> <img class="d-block avatar-user" src="https://web.archive.org/web/20210424062607im_/https://avatars.githubusercontent.com/u/5061034?s=64&amp;v=4" width="32" height="32" alt="@ferhatb"/> </a> </li> </ul> <div class="mt-3"> <a href="/web/20210424062607/https://github.com/flutter/gallery/graphs/contributors" class="text-small"> + 37 contributors </a></div> </div> </div> <div class="BorderGrid-row"> <div class="BorderGrid-cell"> <h2 class="h4 mb-3">Languages</h2> <div class="mb-2"> <span class="Progress "> <span itemprop="keywords" aria-label="Dart 98.8" style="background-color: #00B4AB;width: 98.8%;" class="Progress-item "></span> <span itemprop="keywords" aria-label="C++ 0.6" style="background-color: #f34b7d;width: 0.6%;" class="Progress-item "></span> <span itemprop="keywords" aria-label="CMake 0.4" style="background-color: #ccc;width: 0.4%;" class="Progress-item "></span> <span itemprop="keywords" aria-label="Ruby 0.1" style="background-color: #701516;width: 0.1%;" class="Progress-item "></span> <span itemprop="keywords" aria-label="HTML 0.1" style="background-color: #e34c26;width: 0.1%;" class="Progress-item "></span> <span itemprop="keywords" aria-label="Swift 0.0" style="background-color: #ffac45;width: 0.0%;" class="Progress-item "></span> </span></div> <ul class="list-style-none"> <li class="d-inline"> <a class="d-inline-flex flex-items-center flex-nowrap Link--secondary no-underline text-small mr-3" href="/web/20210424062607/https://github.com/flutter/gallery/search?l=dart" data-ga-click="Repository, language stats search click, location:repo overview"> <svg class="octicon octicon-dot-fill mr-2" style="color:#00B4AB;" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8z"></path></svg> <span class="color-text-primary text-bold mr-1">Dart</span> <span>98.8%</span> </a> </li> <li class="d-inline"> <a class="d-inline-flex flex-items-center flex-nowrap Link--secondary no-underline text-small mr-3" href="/web/20210424062607/https://github.com/flutter/gallery/search?l=c%2B%2B" data-ga-click="Repository, language stats search click, location:repo overview"> <svg class="octicon octicon-dot-fill mr-2" style="color:#f34b7d;" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8z"></path></svg> <span class="color-text-primary text-bold mr-1">C++</span> <span>0.6%</span> </a> </li> <li class="d-inline"> <a class="d-inline-flex flex-items-center flex-nowrap Link--secondary no-underline text-small mr-3" href="/web/20210424062607/https://github.com/flutter/gallery/search?l=cmake" data-ga-click="Repository, language stats search click, location:repo overview"> <svg class="octicon octicon-dot-fill mr-2" style="color:#ccc;" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8z"></path></svg> <span class="color-text-primary text-bold mr-1">CMake</span> <span>0.4%</span> </a> </li> <li class="d-inline"> <a class="d-inline-flex flex-items-center flex-nowrap Link--secondary no-underline text-small mr-3" href="/web/20210424062607/https://github.com/flutter/gallery/search?l=ruby" data-ga-click="Repository, language stats search click, location:repo overview"> <svg class="octicon octicon-dot-fill mr-2" style="color:#701516;" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8z"></path></svg> <span class="color-text-primary text-bold mr-1">Ruby</span> <span>0.1%</span> </a> </li> <li class="d-inline"> <a class="d-inline-flex flex-items-center flex-nowrap Link--secondary no-underline text-small mr-3" href="/web/20210424062607/https://github.com/flutter/gallery/search?l=html" data-ga-click="Repository, language stats search click, location:repo overview"> <svg class="octicon octicon-dot-fill mr-2" style="color:#e34c26;" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8z"></path></svg> <span class="color-text-primary text-bold mr-1">HTML</span> <span>0.1%</span> </a> </li> <li class="d-inline"> <a class="d-inline-flex flex-items-center flex-nowrap Link--secondary no-underline text-small mr-3" href="/web/20210424062607/https://github.com/flutter/gallery/search?l=swift" data-ga-click="Repository, language stats search click, location:repo overview"> <svg class="octicon octicon-dot-fill mr-2" style="color:#ffac45;" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8z"></path></svg> <span class="color-text-primary text-bold mr-1">Swift</span> <span>0.0%</span> </a> </li> </ul> </div> </div> </div> </div> </div></div> </div> </div> </main> </div> </div> <div class="footer container-xl width-full p-responsive" role="contentinfo"> <div class="position-relative d-flex flex-row-reverse flex-lg-row flex-wrap flex-lg-nowrap flex-justify-center flex-lg-justify-between pt-6 pb-2 mt-6 f6 color-text-secondary border-top color-border-secondary "> <ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0"> <li class="mr-3 mr-lg-0">&copy; 2021 GitHub, Inc.</li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20210424062607/https://docs.github.com/en/github/site-policy/github-terms-of-service" data-ga-click="Footer, go to terms, text:terms">Terms</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20210424062607/https://docs.github.com/en/github/site-policy/github-privacy-statement" data-ga-click="Footer, go to privacy, text:privacy">Privacy</a></li> <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to security, text:security" href="https://web.archive.org/web/20210424062607/https://github.com/security">Security</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20210424062607/https://www.githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li> <li><a data-ga-click="Footer, go to help, text:Docs" href="https://web.archive.org/web/20210424062607/https://docs.github.com/">Docs</a></li> </ul> <a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://web.archive.org/web/20210424062607/https://github.com/"> <svg height="24" class="octicon octicon-mark-github" viewbox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg> </a> <ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0"> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20210424062607/https://support.github.com/" data-ga-click="Footer, go to contact, text:contact">Contact GitHub</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20210424062607/https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20210424062607/https://docs.github.com/" data-ga-click="Footer, go to api, text:api">API</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20210424062607/https://services.github.com/" data-ga-click="Footer, go to training, text:training">Training</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20210424062607/https://github.blog/" data-ga-click="Footer, go to blog, text:blog">Blog</a></li> <li><a data-ga-click="Footer, go to about, text:about" href="https://web.archive.org/web/20210424062607/https://github.com/about">About</a></li> </ul> </div> <div class="d-flex flex-justify-center pb-6"> <span class="f6 color-text-tertiary"></span> </div> </div> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg class="octicon octicon-alert" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg class="octicon octicon-x" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg> </button> You can’t perform that action at this time. </div> <div class="js-stale-session-flash flash flash-warn flash-banner" hidden> <svg class="octicon octicon-alert" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span> </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-text-primary hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg class="octicon octicon-x" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> </body> </html> <!-- FILE ARCHIVED ON 06:26:07 Apr 24, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 08:29:40 Dec 11, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.668 exclusion.robots: 0.031 exclusion.robots.policy: 0.019 esindex: 0.012 cdx.remote: 7.525 LoadShardBlock: 116.992 (3) PetaboxLoader3.datanode: 87.0 (4) PetaboxLoader3.resolve: 223.188 (2) load_resource: 240.064 -->

Pages: 1 2 3 4 5 6 7 8 9 10