Full featured HTML framework for building iOS & Android apps

Overview

Framework7

Build Status Greenkeeper

Framework7

Full Featured Mobile HTML Framework For Building iOS & Android Apps

Supporting Framework7

Framework7 is an MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome backers. If you'd like to join them, please consider becoming a backer or sponsor on Patreon.

Sponsors

Getting Started

Framework7 Development

First, install all dependencies:

$ npm install

Development Builds

The following npm scripts are available to create development builds:

  • build:dev - build development versions of all packages (Core, Vue, React, Svelte)
  • build-core:dev - build development version of Core (vanilla JS) Framework7
  • build-react:dev - build development version of Framework7 React package
  • build-vue:dev - build development version of Framework7 Vue package
  • build-svelte:dev - build development version of Framework7 Svelte package

Compiled results will be available in build/ folder.

Production Builds

To build production versions the following npm scripts are available:

  • build:prod - build production versions of all packages (Core, Vue, React, Svelte)
  • build-core:prod - build production version of Core (vanilla JS) Framework7
  • build-react:prod - build production version of Framework7 React package
  • build-vue:prod - build production version of Framework7 Vue package
  • build-svelte:prod - build production version of Framework7 Svelte package

Compiled results will be available in packages/ folder.

Kitchen Sink

To run Kitchen Sink with development environment (development version will be built first) use the following npm scripts:

  • core - build development version of Core (vanilla JS) Framework7 package and run core Kitchen Sink
  • react - build development version of Framework7 React package and run React Kitchen Sink
  • vue - build development version of Framework7 Vue package and run Vue Kitchen Sink
  • svelte - build development version of Framework7 Svelte package and run Svelte Kitchen Sink

Source Code

Whole source code is located under the /src/ folder.

Contributing

Before you open an issue please review the contributing guideline.

All changes should be committed to src/ files only!

Framework7 uses LESS for CSS compilations, and ES modules JS files.

The project uses .editorconfig and ESLint to define and lint the coding style of each file. We recommend that you install the Editor Config and ESLint extension for your preferred IDE.

If you want to help in Framework7 development and make it event better visit this page: https://framework7.io/contribute/

Forum

If you have questions about Framework7 or want to help others you are welcome to special forum at https://forum.framework7.io/

Docs

Documentation available at https://framework7.io/docs/

Tutorials

Tutorials available at https://framework7.io/tutorials/

Showcase

Appstore apps made with Framework7: https://framework7.io/showcase/

Previous Versions

Issues
  • Framework7 React

    Framework7 React

    This is a (multiple allowed):

    • [ ] bug
    • [ ] enhancement
    • [x] feature-discussion (RFC)

    Other than a few small examples here and there on GitHub, there doesn't appear to be a React version of Framework7. My team and I have a good start on a React version of Framework7 that we're considering open sourcing at some point. Before we go through the work to do that, I'd like to make sure that we're not duplicating effort that anyone else is doing.

    Our goal is to have a React framework that relies only on Framework7 HTML and LESS, and not its JavaScript--something similar to www.material-ui.com, except that supports both iOS and Material.

    Does anyone have knowledge of a React version of Framework7 in development, or perhaps of any similar efforts?

    Feature Request Non-Issue 
    opened by bencompton 47
  • Framework7 + AngularJS

    Framework7 + AngularJS

    This is a well done framework (in the very early stages). However, I decided to use framework7 for one of my projects and I wanted to integrate it with angularJS. The difficulty I faced is combining page transitioning/changing from both frameworks. Angular uses ng-view and Framework7 similarly (with partial html) changes pages except for top navbar and bottom navbar.

    Help/Advice on how to control the navigation of pages in Framework7 with AngularJS routes, templates would be very useful. Thank you.

    Enhancement Feature Request 
    opened by nodkrot 42
  • Meteor compatibility

    Meteor compatibility

    any chance that this can work on Meteor (meteor.com)?

    I can get it working well, the thing is Meteor manages the dom and changes it when you change the page/has its own router. This way framework 7's router isn't used.

    Is there a way that the page transitions can be used with Meteor & framework 7? (as well as the sliding back gesture)

    outdated 
    opened by Tarang 38
  • Google Place Autocomplete API

    Google Place Autocomplete API

    Hi I have troubles trying to use Google Place Autocomplete API inside a form. One of the field of the form is a input type="text", that should be autocompleted. It worked in bootstrap, but when I tried to do the same in F7 I found that input is not autocompleted.

    on the form I added

    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false"></script>
    

    In the form my field is

          <li>
            <div class="item-content">
              <div class="item-media"><i class="icon icon-form-place"></i></div>
              <div class="item-inner">
                <div class="item-title label">Lugar</div>
                <div class="item-input">
                  <input id="myplace" type="text" />
                </div>
              </div>
            </div>
          </li>
    

    on the javascript

    $$(document).on('pageInit', function (e) { var page = e.detail.page; // other pages initialization if (page.name === 'myform') { function placeChanged() { console.log('placeChanged'); } var input = $$('#myplace')[0]; var autocomplete = new google.maps.places.Autocomplete(input); google.maps.event.addListener(autocomplete, 'place_changed', placeChanged); }

    });

    First (I don't know why) my input included autocomplete="off" (google added) I am receiving the autocomplete info, but it's not filled in the input box.

    PD: I include some of your form icons in svg in case that you want to include in Framework 7

    i.icon.icon-form-name2 { width: 29px; height: 29px; background-image: url("data:image/svg+xml;charset=utf-8,"); }

    i.icon.icon-form-email2 { width: 29px; height: 29px; background-image: url('data:image/svg+xml;charset=utf-8,'); }

    i.icon.icon-form-tel2 { width: 29px; height: 29px; background-image: url('data:image/svg+xml;charset=utf-8,'); }

    i.icon.icon-form-calendar2 { width: 29px; height: 29px; background-image: url('data:image/svg+xml;charset=utf-8,'); }

    i.icon.icon-form-place { width: 29px; height: 29px; background-image: url('data:image/svg+xml;charset=utf-8,'); }

    outdated 
    opened by CarlosJimenez 32
  • An in-range update of rollup is breaking the build 🚨

    An in-range update of rollup is breaking the build 🚨

    The devDependency rollup was updated from 1.14.2 to 1.14.3.

    🚨 View failing branch.

    This version is covered by your current version range and after updating it in your project the build failed.

    rollup is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

    Status Details
    • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

    Release Notes for v1.14.3

    2019-06-06

    Bug Fixes

    • Generate correct external imports when importing from a directory that would be above the root of the current working directory (#2902)

    Pull Requests

    Commits

    The new version differs by 4 commits.

    See the full diff

    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper Bot :palm_tree:

    greenkeeper outdated 
    opened by greenkeeper[bot] 30
  • Back Navigation issue with Query Params

    Back Navigation issue with Query Params

    I have issue with Back navigation if I query params like this

    DetailArticle.html?id=45
    

    before, I navigate to : Catagory1.html -> Category 2.html -> DetailArticle.html?id=45

    When I hit Back (not browser Back button) on Detail, it goes to Catagory1 instead of Category 2

    outdated 
    opened by teknosains 28
  • extend f7-Side Panels to

    extend f7-Side Panels to "panel-bottom" and "panel-top"

    This is a (multiple allowed):

    • [] bug
    • [ ] enhancement
    • [x] feature-discussion (RFC)

    Actually, the Side-Panels have "panel-left" and "panel-right". Please extend the side-panel:

    • enable "panel-top" (side-panel comes from top to bottom (for example, half of the screen)
    • enable "panel-bottom" (side-panel comes from bottom to top (for example, half of the screen)

    This would be great! Thanks!

    outdated 
    opened by nimo23 28
  • Button freezing on MD

    Button freezing on MD

    This is a (multiple allowed):

    • [x] bug

    • [ ] enhancement

    • [ ] feature-discussion (RFC)

    • Framework7 Version: Framework7 2.2.5

    • Platform and Target: CORDOVA ANDROID.

    What you did

    Create left panel on app. Programming was not used, only the standard framework css. I used the panel of the template itself to create my model.

    <div class="panel panel-left panel-cover theme-dark"> <div class="view"> <div class="page"> <div class="navbar"> <div class="navbar-inner"> <div class="title">Menu</div> </div> </div> <div class="page-content"> <div class="block"> <div class="list"> <ul> <li> <a href="/minha_conta/" class="item-content item-link"> <div class="item-inner"> <div class="item-title">Questionário</div> </div> </a> </li> <li> <a href="/relatorios/" class="item-content item-link"> <div class="item-inner"> <div class="item-title">Relatórios PDT</div> </div> </a> </li> <li> <a href="/solicitacoes/" class="item-content item-link"> <div class="item-inner"> <div class="item-title">Solicitações ERGO</div> </div> </a> </li> <li> <a href="/minha_conta/" class="item-content item-link"> <div class="item-inner"> <div class="item-title">Minha Conta</div> </div> </a> </li> </ul> </div> </div> </div> </div> </div> </div>

    Expected Behavior

    Ripple animated buttons using the MD standard

    Actual Behavior

    Button ripple animation on panel is "freezing", not returning to the default state. Home buttom too.

    localhost_3000_ galaxy s5 localhost_3000_ galaxy s5 1 localhost_3000_ galaxy s5 2

    outdated 
    opened by EriveltonMS 26
  • Adding pull to refresh on panel

    Adding pull to refresh on panel

    I've successfully added pull-to-refresh to a panel, but when the panel is taller than the page, and the y position is less than 0, it's impossible to pull it back to 0. Instead, the pull-to-refresh wants to kick in before the scroll position is 0, and the only way to reset the panel is to quit the web app and reopen it.

    Maybe this isn't a use-case you'd considered, or maybe it's a Safari bug, but I'm documenting it here incase someone can duplicate.

    outdated 
    opened by JJJ 25
  • F7 with React without AJAX

    F7 with React without AJAX

    Hi, I'm trying to build a glorious combo of Meteor, React, Framework7. My only problem is combining Framework7 with React without using AJAX loaded pages. What I do is having a onClick listener on all links that have "data-page" attribute. On clicking I load some very simple page markup to a view:

    
        $$(document).on('click', 'a[data-page]', function(e) {
          var link = $$(e.target);
          if (!link.is('a[data-page]')) {
            link = link.parents('a[data-page]');
          }
    
          var page = link.attr('data-page'); 
          var view = link.attr('data-view');
          var container;
          if(view){
            if(view == 'leftView'){
              container = leftView;
            } else {
              container = mainView;
            }
          } else {
            container = mainView;
          }
          container.router.load({
              content: '<div class="page with-subnavbar" data-page="' + page + '"></div>'
            });
        }, true);
    

    Then on F7 pageInit event I hooked a React render functions that renders a React Class into the already loaded page markup.

    f7.onPageInit('*', function(page) {
          if(page){
            ReactDOM.render(Utils.pages.getPage(page.name), page.container);
          }
        });
    
    

    This approach works. However it has issues.There are many things happening in F7 app.router._load() function that can't apply to the not yet fully created DOM at the time of load() call (because React element renders after it). So, stuff like navbars is not handled correctly.

    Do you have any idea how could this be done in a better way? Any way to "reinitialize" the page after React renders? Thanks!

    outdated 
    opened by mishoboss 24
  • [Router.prototype.load = load;] is missing in [v6.x]

    [Router.prototype.load = load;] is missing in [v6.x]

    • Framework7 version: [6.x]
    • Platform and Target: [Chrome browser]
    • Live Link or JSFiddle: https://github.com/framework7io/framework7/blob/c0c6414054e135caa905e730db72026005037367/src/core/modules/router/router-class.js

    Describe the bug

    From [v6.x] Router.prototype.load = load; is missing in router-class.js AKA function app.views.main.router.load() which I used a lot in my app to dynamic load some html and render the slide in page by myself without any prefixed routers.

    Codes in v5.x

      // Load
      Router.prototype.forward = forward;
      Router.prototype.load = load;
      Router.prototype.navigate = navigate;
      Router.prototype.refreshPage = refreshPage;
      // Tab
      Router.prototype.tabLoad = tabLoad;
      Router.prototype.tabRemove = tabRemove;
      // Modal
      Router.prototype.modalLoad = modalLoad;
      Router.prototype.modalRemove = modalRemove;
      // Back
      Router.prototype.backward = backward;
      Router.prototype.loadBack = loadBack;
      Router.prototype.back = back;
      // Clear history
      Router.prototype.clearPreviousHistory = clearPreviousHistory;
    

    Codes in v6.x

    // Load
    Router.prototype.navigate = navigate;
    Router.prototype.refreshPage = refreshPage;
    // Tab
    Router.prototype.tabLoad = tabLoad;
    Router.prototype.tabRemove = tabRemove;
    // Modal
    Router.prototype.modalLoad = modalLoad;
    Router.prototype.modalRemove = modalRemove;
    // Back
    Router.prototype.back = back;
    // Clear history
    Router.prototype.clearPreviousHistory = clearPreviousHistory;
    

    Expected behavior

    Add

    Router.prototype.load = load;
    
    opened by Ares9999 0
  • f7-link and f7-list-item open-in prop not working

    f7-link and f7-list-item open-in prop not working

    Dear,

    if I configure a f7-list-item with a link prop and a open-in="popup" it will show a blank popup. In dom the the popup exists but the page isn't injected.

    My route is configured with path property and component property. If I play without open-in prop then the page will be loaded and injected in current view.

    The issue is encountered with any allowed string for open-in prop.

    Here an example of what I did.

    <f7-list-item :link="/user-profile" footer="Nome, Cognome, etc." title="Profilo">
        <template #media>
            <f7-icon f7="person"></f7-icon>
        </template>
    </f7-list-item>
    
    opened by michaelsogos 0
  • esm module throws error when running as a preview after successful build with @sveltejs/kit

    esm module throws error when running as a preview after successful build with @sveltejs/kit

    • Framework7 version: [e.g. 3.0.0] 6.1.0-beta.6
    • Svelte version: [e.g. 3.0.0] sveltejs/kit @sveltejs/kit 1.0.0-next.136
    • Platform and Target: [e.g. iOS 11 Cordova app, or Android 8 Chrome browser] chrome
    • Live Link or JSFiddle/CodeSandbox: PREFERABLY (IF YOU WANT YOUR ISSUE TO BE RESOLVED ASAP).

    codesandbox

    Describe the bug

    To Reproduce

    Steps to reproduce the behavior:

    1. svelte-kit dev - works without any issue
    2. svelte-kit build - it is successful
    3. svelte-kit preview Throws following error
    > Directory import '/sandbox/node_modules/framework7/lite' is not supported resolving ES modules imported from /sandbox/.svelte-kit/output/server/app.js
    Did you mean to import framework7/cjs/framework7-lite.js?
    Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/sandbox/node_modules/framework7/lite' is not supported resolving ES modules imported from /sandbox/.svelte-kit/output/server/app.js
    Did you mean to import framework7/cjs/framework7-lite.js?
        at finalizeResolution (internal/modules/esm/resolve.js:272:17)
        at moduleResolve (internal/modules/esm/resolve.js:699:10)
        at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11)
        at Loader.resolve (internal/modules/esm/loader.js:86:40)
        at Loader.getModuleJob (internal/modules/esm/loader.js:230:28)
        at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:56:40)
        at link (internal/modules/esm/module_job.js:55:36)
    [email protected]:/sandbox$
    

    Expected behavior

    it should run the framework on preview mode

    Actual Behavior

    Throws an error since esm module don't support importing directory

    Additional context

    I tried adding conditional exports inside framework7/package.json. But it throws following error

     Cannot use import statement outside a module
    node_modules/.pnpm/[email protected]/node_modules/framework7/esm/framework7-lite.js:13
    import $ from './shared/dom7.js';
    

    I am not too well versed with esm packaging, so could not make much progress here.

    opened by bhvngt 8
  • This line is to be deleted?

    This line is to be deleted?

    @nolimits4web This line is to be deleted?

    https://github.com/framework7io/framework7/blob/52b7e116e41cefab06e5f34e6dec139222426716/src/core/shared/history.js#L31

    https://github.com/framework7io/framework7/blob/52b7e116e41cefab06e5f34e6dec139222426716/src/core/components/panel/panel-class.js#L509

    https://github.com/framework7io/framework7/blob/52b7e116e41cefab06e5f34e6dec139222426716/src/core/modules/router/navigate.js#L259

    https://github.com/framework7io/framework7/blob/ce7a2dc21b29a05d6c782bd53a4155f542867d9c/src/core/modules/router/back.js#L186

    https://github.com/framework7io/framework7/blob/ce7a2dc21b29a05d6c782bd53a4155f542867d9c/src/core/modules/router/back.js#L220

    https://github.com/framework7io/framework7/blob/ce7a2dc21b29a05d6c782bd53a4155f542867d9c/src/core/modules/router/back.js#L349

    Thanks.

    opened by DAnn2012 0
  • [Intervention] error in console on 'touchmove' - Color Picker

    [Intervention] error in console on 'touchmove' - Color Picker

    Framework7 version: 6.0.22 Platform and Target:Cordova app + Chrome browser

    Describe the bug

    An error occurred when swipe a Color Picker

    [Intervention] Ignored attempt to cancel a touchmove event with cancelable=false, for example because scrolling is in progress and cannot be interrupted.

    To Reproduce

    Steps to reproduce the behavior: Create a Color Picker and swipe

    Screenshots

    Schermata 2021-07-19 alle 15 09 27

    Additional context

    To solve the problem please change " e.preventDefault(); " with: if (e.cancelable) { e.preventDefault(); } at line 106 of the "color-picker/modules/wheel.js" file

    opened by MDB80 2
  • I would like to customize the color themes of my app

    I would like to customize the color themes of my app

    Framework7 v5 I would like to customize the color themes of my app, however my navbar is still gray instead of the deprecated blue theme, is this the new default or can I keep the old color I had in version 3 of framework7?

    follow image of my app in version 5 image

    follows image in the old version. image

    thanks

    opened by cvmartins1996 1
  • Next.js - master detail routes didn't render in server side

    Next.js - master detail routes didn't render in server side

    Describe the bug

    Next.js : Master detail routes didn't render in the server

    To Reproduce

    Steps to reproduce the behavior:

    1. Clone https://github.com/framework7io/framework7-nextjs-starter
    2. Replace router.js code into below
    /*
      - Routes involved in Next.js routing (main pages) should be used as "asyncComponent"
      - Routes involved in other Framework7 routers (in Views other than main View) should be imported and used directly as "component"
    */
    import LeftPanel from './pages/left-panel';
    
    // App routes
    export const routes = [
      {
        path: "/about",
        asyncComponent: () => import("./pages/about"),
        master: true,
        // detail routes
        detailRoutes: [
          {
            path: "/",
            asyncComponent: () => import("./pages/index"),
          },
        ],
      },
      {
        path: "/left-panel",
        component: LeftPanel,
      },
      {
        path: '/blog/:postId',
        asyncComponent: () => import('./pages/blog/[postId]'),
      }
    ];
    

    Then,

    1. Create a master detail route
    2. Click on view source

    Expected behavior

    master detail pages should also be render on the server

    Actual Behavior

    master detail pages didn't render in server side

    Screenshots

    If applicable, add screenshots to help explain your problem.

    image

    Master detail code didn't render in server image

    Bug confirmed Feature Request 
    opened by Elvincth 1
  • Feat: Ability to place toolbar / tab bar to the side (left or right), vertically

    Feat: Ability to place toolbar / tab bar to the side (left or right), vertically

    Is your feature request related to a problem? Please describe.

    You can place your tab bar on the top or bottom, but there's no option to put it on the side, so it's vertical .

    Describe the solution you'd like

    I'd love to be able to just have the tab bar vertically on the side to either left or right. That, combined with the ability to automatically place it inside a hamburger menu, as a second request as well. The former is more ideal for desktop, while the latter is more ideal for a web app.

    opened by D-Marc1 0
  • https://forum.framework7.io/t/smart-select-initial-value-vue-not-working/13768

    https://forum.framework7.io/t/smart-select-initial-value-vue-not-working/13768

    Hi, I just need some help on smart select on the latest version of F7 vue,

    in this link https://v5.framework7.io/docs/smart-select.html#smart-select-parameters we can see that it supports multiple selected

    in this link https://framework7.io/react/smart-select.html we can see that it supports multiple selected on React

    but in this link https://framework7.io/vue/smart-select.html the multiple selection is not supported on Vue3 F7v6 and I tried to look at the v5 of F7vue https://v5.framework7.io/vue/smart-select.html the multiple selection is still supported,

    can you please help me with this?

    also I already asked this question in F7 Forum https://forum.framework7.io/t/smart-select-initial-value-vue-not-working/13768

    thanks!

    opened by ptchccnt2015 0
  • Custom Search with autocomplete and dropdown not work on Android device

    Custom Search with autocomplete and dropdown not work on Android device

    • Framework7 version: 5.7.13
    • Platform and Target: Android Device (tested via Nexus 6P w/ Android 8.1.0), Android Simulator (tested via Android 11)
    • Live Link or JSFiddle: https://jsfiddle.net/forallepsilon/Lgz6hmpk/

    Describe the bug

    I have page containing:

    • Searchbar with customSearch: true
    • Dropdown with Ajax-Data loading
    • Custom dropdownContainerEl

    Looks like everything is implemented according to sample provided in docs (section "Dropdown With Ajax-Data").

    I expect that my request to REST API is executed while I type, and results are rendered in dropdown. It works in desktop Chrome, iOS device and simulator, but do not work on Android device. In latter case, dropdown does not appear.

    After some debugging, it seems like an issue inside F7, but I can not say that for sure.

    To Reproduce

    Steps to reproduce the behavior:

    1. Clone this sample repo: https://github.com/contfedorov/f7-issues/tree/android_search_suggest/
    2. Run app on Android device: cordova prepare android && cordova run android (Cordova CLI must be installed)
    3. Open app and tap search icon
    4. Start typing "er" to trigger API call. "Ervin Howell" and "Glenna Reichert" should be the results. They will be shown on iOS/Chrome, but not on Android device

    Expected behavior

    Search results are displayed in dropdown right under search bar

    Actual Behavior

    No dropdown is displayed

    Screenshots

    In both cases API request is performed correctly, but result is not rendered on Android.

    Screen from iOS 14.5 simulator: f7-search-dropdown-ios

    Screen from Android 11 simulator: f7-search-dropdown-android

    Additional context

    This code works perfectly on desktop Chrome, iOS device and simulator. Only Android device causes problems.

    opened by contfedorov 6
Releases(v5.7.6)
Owner
Framework7
Full featured framework for building iOS, Android and Desktop apps
Framework7
A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.

Ionic Framework Ionic Framework is the open-source mobile app development framework that makes it easy to build top quality native and progressive web

Ionic 45.4k Oct 17, 2021
Vue Native is a framework to build cross platform native mobile apps using JavaScript

Vue Native Visit our website at vue-native.io or read the official documentation here. Build native mobile apps using Vue Vue Native is a framework to

GeekyAnts 8.3k Oct 17, 2021
💰 A mobile UI toolkit, based on Vue.js 2, designed for financial scenarios.

?? A mobile UI toolkit, based on Vue.js 2, designed for financial scenarios.

DiDi 3.2k Oct 18, 2021
Native mobile applications using Vue and NativeScript.

Supporting NativeScript-Vue NativeScript-Vue is an MIT-licensed open source project made possible by our sponsors: and these awesome backers: Tiago Al

NativeScript-Vue 4.8k Oct 15, 2021
A fantastic mobile ui lib implement by Vue.

A fantastic mobile ui lib implement by Vue.

DiDi 8.9k Oct 17, 2021
Lightweight Mobile UI Components built on Vue

Vant Mobile UI Components built on Vue ?? 文档网站(国内) ?? 文档网站(GitHub) ???? 中文版介绍 Features 65+ Reusable components 1kb Component average size (min+gzip) 9

有赞 18.5k Oct 20, 2021
NutUI 3 - 京东风格的轻量级移动端 Vue 组件库 (A Vue.js UI Toolkit for Mobile Web)

NutUI 3 - 京东风格的轻量级移动端 Vue 组件库 (A Vue.js UI Toolkit for Mobile Web)

JDR Design FE 3.7k Oct 16, 2021
Material design mobile component library for Vue3

Material design mobile component library for Vue3

null 863 Oct 11, 2021