├── .editorconfig ├── .github └── pull_request_template.md ├── .gitignore ├── LICENSE ├── README.md ├── _config.yml ├── _scripts ├── pre-deploy.js └── sync-sponsors.js ├── assets ├── data.ai ├── hn-architecture.ai ├── icons.psd ├── lifecycle.ai ├── logo.ai ├── mvvm.ai ├── props_and_events.ai ├── state.ai └── why-vue │ ├── arabic.js.srt │ ├── chinese.js.srt │ ├── english.js.srt │ └── french.js.srt ├── package.json ├── src ├── _posts │ ├── 011-component.md │ ├── 012-release.md │ ├── 1.0.0-release.md │ ├── announcing-2.0.md │ ├── common-gotchas.md │ ├── march-update.md │ ├── vue-011-release.md │ ├── vue-cli.md │ ├── vue-next.md │ ├── vuejs-010-release.md │ └── why-no-template-url.md ├── coc │ └── index.md ├── eol │ └── index.md ├── images │ ├── breakpoint_hit.png │ ├── breakpoint_set.png │ ├── components.png │ ├── config_add.png │ ├── data.png │ ├── devtools-storage-chrome.png │ ├── devtools-storage-edge.png │ ├── devtools-storage.png │ ├── devtools-timetravel.gif │ ├── dom-tree.png │ ├── hn-architecture.png │ ├── hn.png │ ├── lifecycle.png │ ├── logged-proxied-data.png │ ├── memory-leak-example.png │ ├── mvvm.png │ ├── oxford-comma.jpg │ ├── props-events.png │ ├── search-by-algolia.png │ ├── state.png │ ├── transition.png │ ├── typescript-type-error.png │ ├── vue-component-with-preprocessors.png │ └── vue-component.png ├── index.md ├── lts │ └── index.md ├── menu │ └── index.md ├── perf │ └── index.md ├── resources │ ├── partners.md │ └── themes.md ├── support-vuejs │ └── index.md └── v2 │ ├── api │ └── index.md │ ├── cookbook │ ├── adding-instance-properties.md │ ├── avoiding-memory-leaks.md │ ├── client-side-storage.md │ ├── creating-custom-scroll-directives.md │ ├── debugging-in-vscode.md │ ├── dockerize-vuejs-app.md │ ├── editable-svg-icons.md │ ├── form-validation.md │ ├── index.md │ ├── packaging-sfc-for-npm.md │ ├── practical-use-of-scoped-slots.md │ ├── serverless-blog.md │ ├── unit-testing-vue-components.md │ └── using-axios-to-consume-apis.md │ ├── examples │ ├── commits.md │ ├── deepstream.md │ ├── elastic-header.md │ ├── firebase.md │ ├── grid-component.md │ ├── hackernews.md │ ├── index.md │ ├── modal.md │ ├── select2.md │ ├── svg.md │ ├── todomvc.md │ ├── tree-view.md │ ├── vue-10-two-way-currency-filter-v2 │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-10-two-way-currency-filter-v3 │ │ ├── currency-validator.js │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-10-two-way-currency-filter │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-accessing-parent-component-instance │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-component-blog-post-example │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-dependency-injection │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-dynamic-components-with-binding │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-dynamic-components │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-dynamic-state-transitions │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-elastic-header │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-firebase-validation │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-github-commits │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-grid-component │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-hello-world │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-keep-alive-with-dynamic-components │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-list-move-transitions │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-markdown-editor │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-modal-component │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-priority-d-rules-correct-example │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-priority-d-rules-unintended-consequences │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-programmatic-event-listeners │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-realtime-with-deepstreamhub │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-single-file-components │ │ ├── Hello.vue │ │ ├── index.html │ │ ├── index.js │ │ └── package.json │ ├── vue-20-svg-graph │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-template-compilation │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-todomvc │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── vue-20-tree-view │ │ ├── index.html │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── style.css │ ├── vue-20-two-way-currency-filter │ │ ├── currency-validator.js │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ └── vue-20-wrapper-component │ │ ├── index.html │ │ ├── package.json │ │ └── sandbox.config.json │ ├── guide │ ├── class-and-style.md │ ├── comparison.md │ ├── components-custom-events.md │ ├── components-dynamic-async.md │ ├── components-edge-cases.md │ ├── components-props.md │ ├── components-registration.md │ ├── components-slots.md │ ├── components.md │ ├── computed.md │ ├── conditional.md │ ├── custom-directive.md │ ├── deployment.md │ ├── events.md │ ├── filters.md │ ├── forms.md │ ├── index.md │ ├── installation.md │ ├── instance.md │ ├── join.md │ ├── list.md │ ├── migration-vue-2-7.md │ ├── migration-vue-router.md │ ├── migration-vuex.md │ ├── migration.md │ ├── mixins.md │ ├── plugins.md │ ├── reactivity.md │ ├── render-function.md │ ├── routing.md │ ├── security.md │ ├── single-file-components.md │ ├── ssr.md │ ├── state-management.md │ ├── syntax.md │ ├── team.md │ ├── testing.md │ ├── transitioning-state.md │ ├── transitions.md │ └── typescript.md │ ├── search │ └── index.md │ └── style-guide │ └── index.md ├── themes └── vue │ ├── _config.yml │ ├── layout │ ├── icons │ │ ├── bch.ejs │ │ ├── btc.ejs │ │ ├── eth.ejs │ │ ├── github-dark.ejs │ │ ├── github.ejs │ │ ├── ltc.ejs │ │ ├── medium.ejs │ │ ├── play.ejs │ │ └── twitter.ejs │ ├── index.ejs │ ├── layout.ejs │ ├── page.ejs │ ├── partials │ │ ├── ad-text.ejs │ │ ├── ad.ejs │ │ ├── conf.ejs │ │ ├── ecosystem_dropdown.ejs │ │ ├── header.ejs │ │ ├── language_dropdown.ejs │ │ ├── learn_dropdown.ejs │ │ ├── main_menu.ejs │ │ ├── platinum_sponsors.ejs │ │ ├── resources_dropdown.ejs │ │ ├── sidebar.ejs │ │ ├── sponsors.ejs │ │ ├── sponsors_sidebar.ejs │ │ ├── support_vue_dropdown.ejs │ │ ├── toc.ejs │ │ └── vueschool_banner.ejs │ ├── partners-page.ejs │ ├── post.ejs │ ├── search-page.ejs │ └── sponsors-page.ejs │ └── source │ ├── browserconfig.xml │ ├── css │ ├── _ad.styl │ ├── _animations.styl │ ├── _api.styl │ ├── _common.styl │ ├── _demo.styl │ ├── _header.styl │ ├── _migration.styl │ ├── _modal.styl │ ├── _offline-menu.styl │ ├── _partners.styl │ ├── _scrimba.styl │ ├── _search-page.styl │ ├── _settings.styl │ ├── _sidebar.styl │ ├── _sponsors-index.styl │ ├── _sponsors-page.styl │ ├── _sponsors-sidebar.styl │ ├── _style-guide.styl │ ├── _syntax.styl │ ├── _team.styl │ ├── _themes.styl │ ├── _vue-mastery.styl │ ├── _vueschool.styl │ ├── benchmark.styl │ ├── index.styl │ ├── page.styl │ └── search.styl │ ├── images │ ├── Monterail.png │ ├── aaha.png │ ├── accelebrate.png │ ├── alligator_io.svg │ ├── aussiecasinohex.svg │ ├── authing.svg │ ├── autocode.svg │ ├── bacancy_technology.png │ ├── banners │ │ ├── bg-desktop.svg │ │ ├── bg-mobile.png │ │ ├── bg-tablet.svg │ │ ├── close.svg │ │ ├── vs-iso.svg │ │ └── vs-logo.svg │ ├── bestvpn_co.png │ ├── betting_bet.png │ ├── bit.png │ ├── blokt_cryptocurrency_news.png │ ├── chaitin.png │ ├── check.png │ ├── cloudstudio.png │ ├── coding.png │ ├── coin-bch.png │ ├── coin-btc.png │ ├── coin-eth.png │ ├── coin-ltc.png │ ├── daily.png │ ├── das_keyboard.png │ ├── daskeyboard.png │ ├── dcloud.gif │ ├── derek_pollard.png │ ├── devexpress.png │ ├── devsquad.png │ ├── dopamine.png │ ├── down.png │ ├── doximity.png │ ├── dronahq.png │ ├── earthlink.png │ ├── empiricus.png │ ├── emq.png │ ├── energy_comparison.png │ ├── exmax.png │ ├── fastcoding_inc.png │ ├── fastcoding_inc.svg │ ├── feed.png │ ├── fen_tre_online_solutions.png │ ├── fen_tre_online_solutions.svg │ ├── finclip.png │ ├── firestick_tricks.png │ ├── flatlogic_templates.svg │ ├── flowdash.png │ ├── foo.png │ ├── free_bets_us.png │ ├── frontendlove.png │ ├── gitee.png │ ├── gridsome.png │ ├── happy_programmer_llc.png │ ├── hbuilder.png │ ├── html_burger.png │ ├── icons.png │ ├── icons │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── bacancy_technology.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png │ ├── icons_8.png │ ├── inkoop.png │ ├── intygrate.png │ ├── ionic.png │ ├── isle_of_code.png │ ├── isolutions_uk_limited.png │ ├── jqwidgets_.png │ ├── jqwidgets_ltd.png │ ├── laravel.png │ ├── layer0.png │ ├── lendio.png │ ├── line_corporation.png │ ├── litslink.png │ ├── logo.png │ ├── logo.svg │ ├── lowdefy.png │ ├── marcus_hiles.png │ ├── memberful.png │ ├── menu-blm.png │ ├── menu.png │ ├── modus.png │ ├── nativescript.png │ ├── neds.png │ ├── netflix_vpn.png │ ├── newicon.png │ ├── nuxt.png │ ├── okay.png │ ├── onsen_ui.png │ ├── onyx_gaming_limited.svg │ ├── opteo.png │ ├── passionate_people.png │ ├── patreon.png │ ├── paypal.png │ ├── philip_john_basile.gif │ ├── piratebay_proxy.png │ ├── piratebayproxy.png │ ├── plaid__inc_.svg │ ├── plaid_inc_.svg │ ├── primevue.png │ ├── programmers_io.png │ ├── pullrequest.svg │ ├── qingfuwu-v2.svg │ ├── quickbooks_tool_hub.png │ ├── refurbed.png │ ├── retool.png │ ├── roadster.png │ ├── search.png │ ├── shopware_ag.png │ ├── shopware_ag.svg │ ├── special-sponsor-spot.png │ ├── staff_augmentation.png │ ├── stdlib.png │ ├── storekit.png │ ├── storyblok.png │ ├── syncfusion.png │ ├── takt.png │ ├── tatvasoft.png │ ├── team_extension_north_america_inc.png │ ├── tee__.png │ ├── tendermint.png │ ├── tidelift.png │ ├── tighten_co.png │ ├── tooltwist.png │ ├── troypoint.png │ ├── unicorn_io.png │ ├── usave.png │ ├── valuecoders.png │ ├── vehikl.png │ ├── vpn_review.png │ ├── vpnranks.png │ ├── vpsserver_com.png │ ├── vuejobs.png │ ├── vuemastery.png │ ├── vueschool.png │ ├── vuetify.png │ ├── vuetraining_net__note__since_i_m_not_sure_where_else_to_put_it____this_is_replacing_vuescreencasts___they_re_both_run_by_me__i_m_just_switching_where_i_want_my_sponsorship_to_point_.png │ ├── watchcartoononline.png │ ├── webdock.png │ ├── webreinvent_technologies_pvt_ltd.svg │ ├── webucator.png │ ├── wilderminds.png │ ├── writers_per_hour.jpg │ ├── x_team.png │ ├── y8.png │ └── yakaz.png │ ├── js │ ├── common.js │ ├── css.escape.js │ ├── smooth-scroll.min.js │ ├── theme-data.js │ ├── v3-notice.js │ ├── vue.js │ └── vue.min.js │ └── manifest.json ├── writing-guide.md └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | charset = utf-8 3 | indent_style = space 4 | indent_size = 2 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | Note 2 | ==== 3 | This repository is for Vue 1.x and 2.x only. Issues and pull requests related to 3.x are managed in the v3 doc repo: https://github.com/vuejs/docs-next. 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | Thumbs.db 3 | db.json 4 | *.log 5 | node_modules/ 6 | public/ 7 | .deploy*/ 8 | src/_drafts 9 | package-lock.json 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-present Yuxi Evan You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /_scripts/pre-deploy.js: -------------------------------------------------------------------------------- 1 | // udpate to latest built files of Vue 2 | require('./sync-sponsors') 3 | 4 | const fs = require('fs') 5 | const zlib = require('zlib') 6 | const axios = require('axios') 7 | const execSync = require('child_process').execSync 8 | 9 | const themeconfPath = 'themes/vue/_config.yml' 10 | const installPath = 'src/v2/guide/installation.md' 11 | const themeconfig = fs.readFileSync(themeconfPath, 'utf-8') 12 | const installation = fs.readFileSync(installPath, 'utf-8') 13 | 14 | // get latest Vue version 15 | console.log(`Checking latest Vue version...`) 16 | const localVersion = themeconfig.match(/vue_version: (.*)/)[1] 17 | const version = execSync('npm view vue@v2-latest version').toString().trim() 18 | 19 | if (localVersion === version) { 20 | console.log(`Version is up-to-date.`) 21 | process.exit(0) 22 | } 23 | 24 | console.log(`Latest version: ${version}. Downloading dist files...`) 25 | 26 | // replace version in theme config 27 | fs.writeFileSync( 28 | themeconfPath, 29 | themeconfig.replace(/vue_version: .*/, 'vue_version: ' + version) 30 | ) 31 | 32 | // grab it from unpkg 33 | Promise.all([download(`vue.js`), download(`vue.min.js`)]) 34 | .then(([devSize, prodSize]) => { 35 | // replace installation page version and size 36 | fs.writeFileSync( 37 | installPath, 38 | installation 39 | .replace(/vue_version: .*/, 'vue_version: ' + version) 40 | .replace(/gz_size:.*/g, `gz_size: "${prodSize}"`) 41 | .replace(/\/vue@[\d\.]+/g, `/vue@${version}`) 42 | ) 43 | console.log( 44 | `\nSuccessfully updated Vue version (${version}) and gzip file size (${prodSize}kb).\n` 45 | ) 46 | }) 47 | .catch((err) => { 48 | console.error(err) 49 | process.exit(1) 50 | }) 51 | 52 | function download(file) { 53 | return axios({ 54 | url: `http://unpkg.com/vue@${version}/dist/${file}`, 55 | method: 'get' 56 | }).then((res) => { 57 | fs.writeFileSync(`themes/vue/source/js/${file}`, res.data) 58 | const zipped = zlib.gzipSync(Buffer.from(res.data)) 59 | return (zipped.length / 1024).toFixed(2) 60 | }) 61 | } 62 | -------------------------------------------------------------------------------- /_scripts/sync-sponsors.js: -------------------------------------------------------------------------------- 1 | // sync latest data from sponsor.vuejs.org 2 | const fs = require('fs') 3 | const path = require('path') 4 | const axios = require('axios') 5 | const yaml = require('js-yaml') 6 | 7 | const configPath = path.resolve(__dirname, '../themes/vue/_config.yml') 8 | 9 | ;(async () => { 10 | const { data } = await axios(`https://sponsors.vuejs.org/data.json`) 11 | const yml = yaml.dump(data) 12 | const config = fs.readFileSync(configPath, 'utf-8') 13 | const updated = config.replace( 14 | /(# START SPONSORS)[^]*(# END SPONSORS)/, 15 | `$1\n${yml}$2` 16 | ) 17 | fs.writeFileSync(configPath, updated) 18 | })() 19 | -------------------------------------------------------------------------------- /assets/data.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/assets/data.ai -------------------------------------------------------------------------------- /assets/hn-architecture.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/assets/hn-architecture.ai -------------------------------------------------------------------------------- /assets/icons.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/assets/icons.psd -------------------------------------------------------------------------------- /assets/lifecycle.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/assets/lifecycle.ai -------------------------------------------------------------------------------- /assets/logo.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/assets/logo.ai -------------------------------------------------------------------------------- /assets/mvvm.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/assets/mvvm.ai -------------------------------------------------------------------------------- /assets/props_and_events.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/assets/props_and_events.ai -------------------------------------------------------------------------------- /assets/state.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/assets/state.ai -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "v2.vuejs.org", 3 | "private": true, 4 | "hexo": { 5 | "version": "6.2.0" 6 | }, 7 | "scripts": { 8 | "dev": "node _scripts/sync-sponsors.js && hexo server", 9 | "build": "node _scripts/pre-deploy.js && hexo clean && hexo generate", 10 | "deploy": "npm run build && hexo deploy" 11 | }, 12 | "engines": { 13 | "node": ">=14.0.0" 14 | }, 15 | "dependencies": { 16 | "axios": "^0.27.2", 17 | "hexo": "^6.2.0", 18 | "hexo-generator-alias": "git+https://github.com/chrisvfritz/vuejs.org-hexo-generator-alias.git", 19 | "hexo-generator-archive": "^1.0.0", 20 | "hexo-generator-category": "^1.0.0", 21 | "hexo-generator-feed": "^3.0.0", 22 | "hexo-generator-index": "^2.0.0", 23 | "hexo-generator-tag": "^1.0.0", 24 | "hexo-renderer-ejs": "^2.0.0", 25 | "hexo-renderer-marked": "^0.3.2", 26 | "hexo-renderer-stylus": "^2.1.0", 27 | "hexo-server": "^3.0.0", 28 | "hoek": "^6.1.2", 29 | "js-yaml": "^4.1.0" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/_posts/vue-011-release.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Vue.js 0.11 released! 3 | date: 2014-11-09 09:23:40 4 | --- 5 | 6 | After the long wait, [Vue.js 0.11 **Cowboy Bebop**](https://github.com/yyx990803/vue/releases/tag/0.11.0) is finally here! Thanks to everyone who tried out the release candidate versions and provided feedback / bug reports along the way. 7 | 8 | 9 | 10 | The 0.11 release introduced many new features and also a fair number of breaking changes, so please carefully read through the [0.11 Change List](https://github.com/yyx990803/vue/blob/master/changes.md) before upgrading. Aside from the API changes, 0.11 also ships with better [code quality](https://codeclimate.com/github/yyx990803/vue) and [test coverage](https://coveralls.io/r/yyx990803/vue), and is considerably more robust in almost every aspect. 11 | 12 | This documentation site has been fully upgraded to match the new 0.11 API. For the now legacy 0.10.6 version, you can still find documentations for it at [legacy.vuejs.org](http://legacy.vuejs.org). 13 | -------------------------------------------------------------------------------- /src/_posts/vue-next.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Vue.js 0.10.6, and what's next 3 | date: 2014-07-29 00:04:55 4 | --- 5 | 6 | ## 0.10.6 7 | 8 | Vue.js 0.10.6 has been released! This is another small bug-fix release and will be the last maintenance version before the next major release. 9 | 10 | 11 | 12 | - fix `v-style` error when value is falsy or a number. ( thanks to [@dmfilipenko](https://github.com/dmfilipenko) ) 13 | - fix the built-in `currency` filter error when value is a string ( thanks to [@dmfilipenko](https://github.com/dmfilipenko) ) 14 | - fix `Vue.require` for building with Component v1.0+ ( thanks to [@kewah](https://github.com/kewah) ) 15 | - Allow template nodes to be passed as a template option ( thanks to [@jordangarcia](https://github.com/jordangarcia) ) 16 | - `vm.$destroy()` now accepts an optional argument `noRemove`. When passed in as `true` it will leave the vm's DOM node intact after the vm is destroyed. 17 | 18 | ## Vue-next 19 | 20 | Some of you might have noticed there is a [next](https://github.com/yyx990803/vue/tree/next) branch in the repo. And yes, I am re-writing Vue.js from scratch. There are two main reasons: 21 | 22 | - Fix some issues that are caused by design flaws in the current version. Because these changes affect the design of some core modules, it is actually easier to rewrite than to apply on the current codebase. 23 | - Improve general code quality (in particular, `compiler.js` as of now is a big pile of mess, and comments are not consistent across the codebase.) 24 | 25 | Take note that the `next` branch is still in **very** early stage. The internals will change a lot, and when it comes out it **will** break current applications. Despite that I will try to keep the API changes to a minimum. Major differences with current 0.10 branch are documented in [`changes.md`](https://github.com/yyx990803/vue/blob/next/changes.md). The list is obviously incomplete and subject to change, some of them are simply ideas, but it at least gives you a taste of what to expect, and I'd appreciate your feedback on any of the topics. 26 | 27 | Share your thoughts at [vuejs/Discussion](https://github.com/vuejs/Discussion/issues). 28 | -------------------------------------------------------------------------------- /src/images/breakpoint_hit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/breakpoint_hit.png -------------------------------------------------------------------------------- /src/images/breakpoint_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/breakpoint_set.png -------------------------------------------------------------------------------- /src/images/components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/components.png -------------------------------------------------------------------------------- /src/images/config_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/config_add.png -------------------------------------------------------------------------------- /src/images/data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/data.png -------------------------------------------------------------------------------- /src/images/devtools-storage-chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/devtools-storage-chrome.png -------------------------------------------------------------------------------- /src/images/devtools-storage-edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/devtools-storage-edge.png -------------------------------------------------------------------------------- /src/images/devtools-storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/devtools-storage.png -------------------------------------------------------------------------------- /src/images/devtools-timetravel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/devtools-timetravel.gif -------------------------------------------------------------------------------- /src/images/dom-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/dom-tree.png -------------------------------------------------------------------------------- /src/images/hn-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/hn-architecture.png -------------------------------------------------------------------------------- /src/images/hn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/hn.png -------------------------------------------------------------------------------- /src/images/lifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/lifecycle.png -------------------------------------------------------------------------------- /src/images/logged-proxied-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/logged-proxied-data.png -------------------------------------------------------------------------------- /src/images/memory-leak-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/memory-leak-example.png -------------------------------------------------------------------------------- /src/images/mvvm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/mvvm.png -------------------------------------------------------------------------------- /src/images/oxford-comma.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/oxford-comma.jpg -------------------------------------------------------------------------------- /src/images/props-events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/props-events.png -------------------------------------------------------------------------------- /src/images/search-by-algolia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/search-by-algolia.png -------------------------------------------------------------------------------- /src/images/state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/state.png -------------------------------------------------------------------------------- /src/images/transition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/transition.png -------------------------------------------------------------------------------- /src/images/typescript-type-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/typescript-type-error.png -------------------------------------------------------------------------------- /src/images/vue-component-with-preprocessors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/vue-component-with-preprocessors.png -------------------------------------------------------------------------------- /src/images/vue-component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/src/images/vue-component.png -------------------------------------------------------------------------------- /src/index.md: -------------------------------------------------------------------------------- 1 | index: true 2 | --- 3 | -------------------------------------------------------------------------------- /src/menu/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | type: menu 3 | --- 4 | -------------------------------------------------------------------------------- /src/perf/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Performance Comparisons 3 | --- 4 | 5 | ## TodoMVC Benchmark 6 | 7 | > *Last Updated: 2014-10-12* 8 | 9 | Looking for the TodoMVC Benchmark? It's been removed because after discussion with some other framework authors we have agreed that: 10 | 11 | 1. The original intention of these benchmarks were for comparing Browser performance rather than that of frameworks. The "synchronously trigger an action xxx times" test routine doesn't reflect meaningful real world user actions. 12 | 13 | 2. Due to internal implementation differences, frameworks that uses async rendering (e.g. Vue, Om, Mercury) gains the advantage by skipping part of the calculations that happened in the same event loop. The real world user experience doesn't demonstrate such dramatic difference. 14 | 15 | 3. Overall this benchmark suite gave rise to more controversy than constructive insights, so it's been removed and I'd be happy to replace it with a more meaningful way to measure front-end performance. 16 | -------------------------------------------------------------------------------- /src/resources/themes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Themes 3 | type: resources 4 | order: 804 5 | --- 6 | {% raw %} 7 |
8 |
9 | 10 |
11 | 12 |

13 | Want to feature your themes here? 14 | Contact us! 15 |

16 |
17 | 18 | 41 | 42 | 69 | {% endraw %} 70 | -------------------------------------------------------------------------------- /src/support-vuejs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | sponsors: true 3 | type: sponsors 4 | --- 5 | -------------------------------------------------------------------------------- /src/v2/examples/commits.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: GitHub Commits 3 | type: examples 4 | order: 1 5 | --- 6 | 7 | > This example fetches latest Vue.js commits data from GitHub's API and displays them as a list. You can switch between the master and dev branches. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/v2/examples/deepstream.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Realtime with deepstreamHub 3 | type: examples 4 | order: 9 5 | --- 6 | 7 | > This example uses [deepstreamHub](https://deepstreamhub.com/) to synchronize realtime data, send events and make remote procedure calls between clients (you can try opening it in multiple browser windows). 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/v2/examples/elastic-header.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Elastic Header 3 | type: examples 4 | order: 7 5 | --- 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/v2/examples/firebase.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Firebase + Validation 3 | type: examples 4 | order: 10 5 | --- 6 | 7 | > This example uses [Firebase](https://firebase.google.com/) as the data persistence backend and syncs between clients in real time (you can try opening it in multiple browser tabs). In addition, it performs instant validation using computed properties and triggers CSS transitions when adding/removing items. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/v2/examples/grid-component.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Grid Component 3 | type: examples 4 | order: 3 5 | --- 6 | 7 | > This is an example of creating a reusable grid component and using it with external data. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/v2/examples/hackernews.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: HackerNews Clone 3 | type: examples 4 | order: 12 5 | --- 6 | 7 | > This is a HackerNews clone built upon HN's official Firebase API, Vue 2.0 + Vue Router + Vuex, with server-side rendering. 8 | 9 | {% raw %} 10 |
11 | 12 | 13 | 14 |
15 | {% endraw %} 16 | 17 | > [Live Demo](https://vue-hn.herokuapp.com/) 18 | > Note: the demo may need some spin up time if nobody has accessed it for a certain period. 19 | > 20 | > [[Source](https://github.com/vuejs/vue-hackernews-2.0)] 21 | 22 | ## Features 23 | 24 | - Server Side Rendering 25 | - Vue + Vue Router + Vuex working together 26 | - Server-side data pre-fetching 27 | - Client-side state & DOM hydration 28 | - Single-file Vue Components 29 | - Hot-reload in development 30 | - CSS extraction for production 31 | - Real-time List Updates with FLIP Animation 32 | 33 | ## Architecture Overview 34 | 35 | Hackernew clone architecture overview 36 | -------------------------------------------------------------------------------- /src/v2/examples/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Markdown Editor 3 | type: examples 4 | order: 0 5 | --- 6 | 7 | > Dead simple Markdown editor. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/v2/examples/modal.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Modal Component 3 | type: examples 4 | order: 6 5 | --- 6 | 7 | > Features used: component, prop passing, content insertion, transitions. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/v2/examples/select2.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Wrapper Component 3 | type: examples 4 | order: 8 5 | --- 6 | 7 | > In this example we are integrating a 3rd party jQuery plugin (select2) by wrapping it inside a custom component. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/v2/examples/svg.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: SVG Graph 3 | type: examples 4 | order: 5 5 | --- 6 | 7 | > This example showcases a combination of custom component, computed property, two-way binding and SVG support. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/v2/examples/todomvc.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: TodoMVC 3 | type: examples 4 | order: 11 5 | --- 6 | 7 | > This is a fully spec-compliant TodoMVC implementation in under 120 effective lines of JavaScript (excluding comments and blank lines). 8 | 9 |

Note that if your web browser is configured to block 3rd-party data/cookies, the example below will not work, as the `localStorage` data will fail to be saved. You'll have to click on `Open Sandbox` to see the live result.

10 | 11 | 12 | -------------------------------------------------------------------------------- /src/v2/examples/tree-view.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Tree View 3 | type: examples 4 | order: 4 5 | --- 6 | 7 | > Example of a simple tree view implementation showcasing recursive usage of components. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/v2/examples/vue-10-two-way-currency-filter-v2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Two-way Currency Filter 5 | 6 | 7 | 8 | 9 |
10 | 11 | 15 | 19 | 23 | 24 |

Total: ${{ total }}

25 |
26 | 27 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /src/v2/examples/vue-10-two-way-currency-filter-v2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-10-two-way-currency-filter-v2", 3 | "version": "1.0.0", 4 | "description": "Showing how delayed state updates can cause strange behavior.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-10-two-way-currency-filter-v2/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-10-two-way-currency-filter-v3/currency-validator.js: -------------------------------------------------------------------------------- 1 | var currencyValidator = { 2 | format: function(number) { 3 | return (Math.trunc(number * 100) / 100).toFixed(2); 4 | }, 5 | parse: function(newString, oldNumber) { 6 | var CleanParse = function(value) { 7 | return { value: value }; 8 | }; 9 | var CurrencyWarning = function(warning, value) { 10 | return { 11 | warning: warning, 12 | value: value, 13 | attempt: newString 14 | }; 15 | }; 16 | var NotAValidDollarAmountWarning = function(value) { 17 | return new CurrencyWarning( 18 | newString + " is not a valid dollar amount", 19 | value 20 | ); 21 | }; 22 | var AutomaticConversionWarning = function(value) { 23 | return new CurrencyWarning( 24 | newString + " was automatically converted to " + value, 25 | value 26 | ); 27 | }; 28 | 29 | var newNumber = Number(newString); 30 | var indexOfDot = newString.indexOf("."); 31 | var indexOfE = newString.indexOf("e"); 32 | 33 | if (isNaN(newNumber)) { 34 | if ( 35 | indexOfDot === -1 && 36 | indexOfE > 0 && 37 | indexOfE === newString.length - 1 && 38 | Number(newString.slice(0, indexOfE)) !== 0 39 | ) { 40 | return new CleanParse(oldNumber); 41 | } else { 42 | return new NotAValidDollarAmountWarning(oldNumber); 43 | } 44 | } 45 | 46 | var newCurrencyString = currencyValidator.format(newNumber); 47 | var newCurrencyNumber = Number(newCurrencyString); 48 | 49 | if (newCurrencyNumber === newNumber) { 50 | if (indexOfE !== -1 && indexOfE === newString.length - 2) { 51 | return new AutomaticConversionWarning(newNumber); 52 | } else { 53 | return new CleanParse(newNumber); 54 | } 55 | } else { 56 | return new NotAValidDollarAmountWarning( 57 | newNumber > newCurrencyNumber ? newCurrencyNumber : oldNumber 58 | ); 59 | } 60 | } 61 | }; 62 | -------------------------------------------------------------------------------- /src/v2/examples/vue-10-two-way-currency-filter-v3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-10-two-way-currency-filter-v3", 3 | "version": "1.0.0", 4 | "description": "Showing how delayed state updates can cause strange behavior.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-10-two-way-currency-filter-v3/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-10-two-way-currency-filter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Two-way Currency Filter 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 |
13 |
14 | 15 | 16 |
17 |
18 | 19 | 20 |
21 |
22 | 23 | 24 |
25 | 26 |

Total: ${{ total }}

27 |
28 | 29 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/v2/examples/vue-10-two-way-currency-filter/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-10-two-way-currency-filter", 3 | "version": "1.0.0", 4 | "description": "Showing how delayed state updates can cause strange behavior.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-10-two-way-currency-filter/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-accessing-parent-component-instance/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dependency Injection Google Maps Demo 5 | 6 | 7 | 13 | 14 | 15 |
16 | 17 | 18 | 19 |
20 | 21 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-accessing-parent-component-instance/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-accessing-parent-component-instance", 3 | "version": "1.0.0", 4 | "description": "Vue.js example accessing Parent Component Instance using Google Maps.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-accessing-parent-component-instance/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-component-blog-post-example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Component Blog Post Example 5 | 6 | 7 | 8 |
9 | 14 |
15 | 16 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-component-blog-post-example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-component-blog-post-example", 3 | "version": "1.0.0", 4 | "description": "Dynamically passing props, like when fetching posts from an API.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-component-blog-post-example/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dependency-injection/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dependency Injection Google Maps Demo 5 | 6 | 7 | 13 | 14 | 15 |
16 | 17 | 18 | 19 |
20 | 21 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dependency-injection/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-dependency-injection", 3 | "version": "1.0.0", 4 | "description": "Vue.js Dependency Injection example using Google Maps.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dependency-injection/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dynamic-components-with-binding/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dynamic Components Example 5 | 6 | 28 | 29 | 30 |
31 | 39 | 40 | 41 |
42 | 43 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dynamic-components-with-binding/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-dynamic-components-with-binding", 3 | "version": "1.0.0", 4 | "description": "Showing binding to a component's options object.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dynamic-components-with-binding/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dynamic-components/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dynamic Components Example 5 | 6 | 28 | 29 | 30 |
31 | 39 | 40 | 41 |
42 | 43 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dynamic-components/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-dynamic-components", 3 | "version": "1.0.0", 4 | "description": "Used to dynamically switch between components, like in a tabbed interface.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dynamic-components/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dynamic-state-transitions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-dynamic-state-transitions", 3 | "version": "1.0.0", 4 | "description": "Data backing state transitions can be updated in real time, like in this example.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-dynamic-state-transitions/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-elastic-header/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-elastic-header", 3 | "version": "1.0.0", 4 | "description": "Elastic Draggable SVG Header", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-elastic-header/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-elastic-header/style.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | font-weight: 300; 3 | font-size: 1.8em; 4 | margin-top: 0; 5 | } 6 | a { 7 | color: #fff; 8 | } 9 | .draggable-header-view { 10 | background-color: #fff; 11 | box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); 12 | width: 320px; 13 | height: 560px; 14 | overflow: hidden; 15 | margin: 30px auto; 16 | position: relative; 17 | font-family: "Roboto", Helvetica, Arial, sans-serif; 18 | color: #fff; 19 | font-size: 14px; 20 | font-weight: 300; 21 | -webkit-user-select: none; 22 | -moz-user-select: none; 23 | -ms-user-select: none; 24 | user-select: none; 25 | } 26 | .draggable-header-view .bg { 27 | position: absolute; 28 | top: 0; 29 | left: 0; 30 | z-index: 0; 31 | } 32 | .draggable-header-view .header, 33 | .draggable-header-view .content { 34 | position: relative; 35 | z-index: 1; 36 | padding: 30px; 37 | box-sizing: border-box; 38 | } 39 | .draggable-header-view .header { 40 | height: 160px; 41 | } 42 | .draggable-header-view .content { 43 | color: #333; 44 | line-height: 1.5em; 45 | } 46 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-firebase-validation/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-firebase-validation", 3 | "version": "1.0.0", 4 | "description": "This example uses Firebase as the data persistence backend and syncs between clients in real time (you can try opening it in multiple browser tabs). In addition, it performs instant validation using computed properties and triggers CSS transitions when adding/removing items.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-firebase-validation/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-firebase-validation/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: Helvetica, Arial, sans-serif; 3 | } 4 | 5 | ul { 6 | padding: 0; 7 | } 8 | 9 | .user { 10 | height: 30px; 11 | line-height: 30px; 12 | padding: 10px; 13 | border-top: 1px solid #eee; 14 | overflow: hidden; 15 | transition: all 0.25s ease; 16 | } 17 | 18 | .user:last-child { 19 | border-bottom: 1px solid #eee; 20 | } 21 | 22 | .v-enter, 23 | .v-leave-active { 24 | height: 0; 25 | padding-top: 0; 26 | padding-bottom: 0; 27 | border-top-width: 0; 28 | border-bottom-width: 0; 29 | } 30 | 31 | .errors { 32 | color: #f00; 33 | } 34 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-github-commits/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | GitHub Commits 5 | 6 | 7 | 8 | 9 |
10 |

Latest Vue.js Commits

11 | 21 |

vuejs/vue@{{ currentBranch }}

22 | 39 |
40 | 41 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-github-commits/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-github-commits", 3 | "version": "1.0.0", 4 | "description": "This example fetches latest Vue.js commits data from GitHub's API and displays them as a list. You can switch between the master and dev branches.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-github-commits/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-github-commits/style.css: -------------------------------------------------------------------------------- 1 | #demo { 2 | font-family: "Helvetica", Arial, sans-serif; 3 | } 4 | a { 5 | text-decoration: none; 6 | color: #f66; 7 | } 8 | li { 9 | line-height: 1.5em; 10 | margin-bottom: 20px; 11 | } 12 | .author, 13 | .date { 14 | font-weight: bold; 15 | } 16 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-grid-component/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-grid-component", 3 | "version": "1.0.0", 4 | "description": "This is an example of creating a reusable grid component and using it with external data.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-grid-component/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-grid-component/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: Helvetica Neue, Arial, sans-serif; 3 | font-size: 14px; 4 | color: #444; 5 | } 6 | 7 | table { 8 | border: 2px solid #42b983; 9 | border-radius: 3px; 10 | background-color: #fff; 11 | } 12 | 13 | th { 14 | background-color: #42b983; 15 | color: rgba(255, 255, 255, 0.66); 16 | cursor: pointer; 17 | -webkit-user-select: none; 18 | -moz-user-select: none; 19 | -ms-user-select: none; 20 | user-select: none; 21 | } 22 | 23 | td { 24 | background-color: #f9f9f9; 25 | } 26 | 27 | th, 28 | td { 29 | min-width: 120px; 30 | padding: 10px 20px; 31 | } 32 | 33 | th.active { 34 | color: #fff; 35 | } 36 | 37 | th.active .arrow { 38 | opacity: 1; 39 | } 40 | 41 | .arrow { 42 | display: inline-block; 43 | vertical-align: middle; 44 | width: 0; 45 | height: 0; 46 | margin-left: 5px; 47 | opacity: 0.66; 48 | } 49 | 50 | .arrow.asc { 51 | border-left: 4px solid transparent; 52 | border-right: 4px solid transparent; 53 | border-bottom: 4px solid #fff; 54 | } 55 | 56 | .arrow.dsc { 57 | border-left: 4px solid transparent; 58 | border-right: 4px solid transparent; 59 | border-top: 4px solid #fff; 60 | } 61 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-hello-world/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | My first Vue app 5 | 6 | 7 | 8 |
9 | {{ message }} 10 |
11 | 12 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-hello-world/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-hello-world", 3 | "version": "1.0.0", 4 | "description": "The easiest way to try out Vue.js, edit this Hello World example", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-hello-world/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-keep-alive-with-dynamic-components/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-keep-alive-with-dynamic-components", 3 | "version": "1.0.0", 4 | "description": "The Posts tab maintains its state (the selected post) even when it's not rendered.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-keep-alive-with-dynamic-components/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-keep-alive-with-dynamic-components/style.css: -------------------------------------------------------------------------------- 1 | .tab-button { 2 | padding: 6px 10px; 3 | border-top-left-radius: 3px; 4 | border-top-right-radius: 3px; 5 | border: 1px solid #ccc; 6 | cursor: pointer; 7 | background: #f0f0f0; 8 | margin-bottom: -1px; 9 | margin-right: -1px; 10 | } 11 | .tab-button:hover { 12 | background: #e0e0e0; 13 | } 14 | .tab-button.active { 15 | background: #e0e0e0; 16 | } 17 | .tab { 18 | border: 1px solid #ccc; 19 | padding: 10px; 20 | } 21 | .posts-tab { 22 | display: flex; 23 | } 24 | .posts-sidebar { 25 | max-width: 40vw; 26 | margin: 0; 27 | padding: 0 10px 0 0; 28 | list-style-type: none; 29 | border-right: 1px solid #ccc; 30 | } 31 | .posts-sidebar li { 32 | white-space: nowrap; 33 | text-overflow: ellipsis; 34 | overflow: hidden; 35 | cursor: pointer; 36 | } 37 | .posts-sidebar li:hover { 38 | background: #eee; 39 | } 40 | .posts-sidebar li.selected { 41 | background: lightblue; 42 | } 43 | .selected-post-container { 44 | padding-left: 10px; 45 | } 46 | .selected-post > :first-child { 47 | margin-top: 0; 48 | padding-top: 0; 49 | } 50 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-list-move-transitions/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | List Move Transitions Sudoku Example 5 | 6 | 7 | 8 | 9 | 10 |
11 |

Lazy Sudoku

12 |

Keep hitting the shuffle button until you win.

13 | 14 | 17 | 18 |
19 | {{ cell.number }} 20 |
21 |
22 |
23 | 24 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-list-move-transitions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-list-move-transitions", 3 | "version": "1.0.0", 4 | "description": "Example showing list entering/leaving transitions in Sudoku.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-list-move-transitions/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-list-move-transitions/style.css: -------------------------------------------------------------------------------- 1 | .container { 2 | display: flex; 3 | flex-wrap: wrap; 4 | width: 238px; 5 | margin-top: 10px; 6 | } 7 | .cell { 8 | display: flex; 9 | justify-content: space-around; 10 | align-items: center; 11 | width: 25px; 12 | height: 25px; 13 | border: 1px solid #aaa; 14 | margin-right: -1px; 15 | margin-bottom: -1px; 16 | } 17 | .cell:nth-child(3n) { 18 | margin-right: 0; 19 | } 20 | .cell:nth-child(27n) { 21 | margin-bottom: 0; 22 | } 23 | .cell-move { 24 | transition: transform 1s; 25 | } 26 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-markdown-editor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Markdown Editor 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 |
14 |
15 | 16 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-markdown-editor/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-markdown-editor", 3 | "version": "1.0.0", 4 | "description": "Dead simple Markdown editor.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-markdown-editor/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-markdown-editor/style.css: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | #editor { 4 | margin: 0; 5 | height: 100%; 6 | font-family: "Helvetica Neue", Arial, sans-serif; 7 | color: #333; 8 | } 9 | 10 | textarea, 11 | #editor div { 12 | display: inline-block; 13 | width: 49%; 14 | height: 100%; 15 | vertical-align: top; 16 | box-sizing: border-box; 17 | padding: 0 20px; 18 | } 19 | 20 | textarea { 21 | border: none; 22 | border-right: 1px solid #ccc; 23 | resize: none; 24 | outline: none; 25 | background-color: #f6f6f6; 26 | font-size: 14px; 27 | font-family: "Monaco", courier, monospace; 28 | padding: 20px; 29 | } 30 | 31 | code { 32 | color: #f66; 33 | } 34 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-modal-component/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Modal Component 5 | 6 | 7 | 8 | 39 | 40 | 41 | 42 |
43 | 44 | 45 | 46 | 50 |

custom header

51 |
52 |
53 | 54 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-modal-component/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-modal-component", 3 | "version": "1.0.0", 4 | "description": "Features used: component, prop passing, content insertion, transitions.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-modal-component/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-modal-component/style.css: -------------------------------------------------------------------------------- 1 | .modal-mask { 2 | position: fixed; 3 | z-index: 9998; 4 | top: 0; 5 | left: 0; 6 | width: 100%; 7 | height: 100%; 8 | background-color: rgba(0, 0, 0, 0.5); 9 | display: table; 10 | transition: opacity 0.3s ease; 11 | } 12 | 13 | .modal-wrapper { 14 | display: table-cell; 15 | vertical-align: middle; 16 | } 17 | 18 | .modal-container { 19 | width: 300px; 20 | margin: 0px auto; 21 | padding: 20px 30px; 22 | background-color: #fff; 23 | border-radius: 2px; 24 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33); 25 | transition: all 0.3s ease; 26 | font-family: Helvetica, Arial, sans-serif; 27 | } 28 | 29 | .modal-header h3 { 30 | margin-top: 0; 31 | color: #42b983; 32 | } 33 | 34 | .modal-body { 35 | margin: 20px 0; 36 | } 37 | 38 | .modal-default-button { 39 | float: right; 40 | } 41 | 42 | /* 43 | * The following styles are auto-applied to elements with 44 | * transition="modal" when their visibility is toggled 45 | * by Vue.js. 46 | * 47 | * You can easily play with the modal transition by editing 48 | * these styles. 49 | */ 50 | 51 | .modal-enter { 52 | opacity: 0; 53 | } 54 | 55 | .modal-leave-active { 56 | opacity: 0; 57 | } 58 | 59 | .modal-enter .modal-container, 60 | .modal-leave-active .modal-container { 61 | -webkit-transform: scale(1.1); 62 | transform: scale(1.1); 63 | } 64 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-priority-d-rules-correct-example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Priority D Rules Correct Example 5 | 6 | 20 | 21 | 22 |
23 | 24 | 27 | 30 | 31 | 32 |

33 | With a unique key on each conditional element, the 34 | transition is now applied. 35 |

36 |
37 | 38 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-priority-d-rules-correct-example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-priority-d-rules-correct-example", 3 | "version": "1.0.0", 4 | "description": "A unique key on each conditional element so the transition is applied.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-priority-d-rules-correct-example/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-priority-d-rules-unintended-consequences/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Priority D Rules Unintended Consequences 5 | 6 | 20 | 21 | 22 |
23 | 24 | 27 | 30 | 31 | 32 |

33 | When clicking on the <button> above, the transition 34 | is never applied because Vue is reusing the same element for render 35 | efficiency. To force Vue to treat these as separate elements, a 36 | unique key must be added 41 | to each conditional element. 42 |

43 |
44 | 45 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-priority-d-rules-unintended-consequences/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-priority-d-rules-unintended-consequences", 3 | "version": "1.0.0", 4 | "description": "Lacking a unique key on each conditional element, the transition is never applied.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-priority-d-rules-unintended-consequences/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-programmatic-event-listeners/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Programmatic Event Listeners using Pikaday 5 | 6 | 7 | 8 | 9 |
10 | 11 |
12 | 13 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-programmatic-event-listeners/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-programmatic-event-listeners", 3 | "version": "1.0.0", 4 | "description": "Vue.js Programmatic Event Listeners example using Pikaday", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-programmatic-event-listeners/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-realtime-with-deepstreamhub/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-realtime-with-deepstreamhub", 3 | "version": "1.0.0", 4 | "description": "This example uses deepstreamHub to synchronize realtime data, send events and make remote procedure calls between clients (you can try opening it in multiple browser windows).", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-realtime-with-deepstreamhub/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-realtime-with-deepstreamhub/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | list-style-type: none; 5 | font-family: RobotoCondensed, sans-serif; 6 | font-size: 14px; 7 | color: #333; 8 | box-sizing: border-box; 9 | outline: none; 10 | transition: all 200ms ease; 11 | } 12 | 13 | body { 14 | background-color: #fff; 15 | } 16 | 17 | .group { 18 | width: 80%; 19 | max-width: 800px; 20 | margin: 40px auto; 21 | padding: 20px; 22 | position: relative; 23 | overflow: hidden; 24 | } 25 | 26 | .group.connectionState { 27 | margin: 10px auto 0; 28 | padding: 0 20px; 29 | } 30 | 31 | h2 { 32 | font-size: 20px; 33 | border-bottom: 1px solid #ccc; 34 | padding-bottom: 4px; 35 | margin-bottom: 10px; 36 | position: relative; 37 | } 38 | 39 | h2 small { 40 | position: absolute; 41 | right: 0; 42 | } 43 | 44 | h2 small * { 45 | display: inline-block; 46 | vertical-align: middle; 47 | font-weight: normal; 48 | color: #333; 49 | font-size: 12px; 50 | cursor: pointer; 51 | } 52 | 53 | button, 54 | input, 55 | .item { 56 | height: 32px; 57 | padding: 6px; 58 | } 59 | 60 | button { 61 | border: none; 62 | background: #7185ec; 63 | color: #fff; 64 | font-weight: 500; 65 | border-radius: 4px; 66 | cursor: pointer; 67 | text-align: center; 68 | cursor: pointer; 69 | font-weight: bold; 70 | box-shadow: 1px 1px 3px 0px rgba(0, 0, 0, 0.2); 71 | } 72 | 73 | button:hover { 74 | background-color: #586cd8; 75 | } 76 | 77 | button:active { 78 | position: relative; 79 | top: 1px; 80 | left: 1px; 81 | box-shadow: none; 82 | } 83 | 84 | .half { 85 | width: 48%; 86 | float: left; 87 | position: relative; 88 | } 89 | 90 | .half.left { 91 | margin-right: 4%; 92 | } 93 | 94 | label { 95 | font-size: 11px; 96 | font-style: italic; 97 | } 98 | 99 | input { 100 | border-radius: 4px; 101 | border: 1px solid #ccc; 102 | } 103 | 104 | input:focus { 105 | border-color: #7185ec; 106 | } 107 | 108 | .input-group input { 109 | width: 100%; 110 | } 111 | 112 | span.response { 113 | display: inline-block; 114 | background-color: #dddddd; 115 | } 116 | 117 | @media screen and (max-width: 900px) { 118 | .half { 119 | width: 100%; 120 | margin: 0 0 10px !important; 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-single-file-components/Hello.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 14 | 15 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-single-file-components/index.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /src/v2/examples/vue-20-single-file-components/index.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./Hello"; 3 | 4 | Vue.config.productionTip = false; 5 | 6 | new Vue({ 7 | el: "#app", 8 | template: "", 9 | components: { App } 10 | }); 11 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-single-file-components/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-single-file-components", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "vue": "^2.6.11" 12 | }, 13 | "devDependencies": {}, 14 | "browserslist": ["> 1%", "last 2 versions", "not ie <= 8"], 15 | "keywords": [], 16 | "description": "Hello.vue single-file components example using a .vue extension." 17 | } 18 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-svg-graph/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-svg-graph", 3 | "version": "1.0.0", 4 | "description": "This example showcases a combination of custom component, computed property, two-way binding and SVG support.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-svg-graph/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-svg-graph/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: Helvetica Neue, Arial, sans-serif; 3 | } 4 | 5 | polygon { 6 | fill: #42b983; 7 | opacity: 0.75; 8 | } 9 | 10 | circle { 11 | fill: transparent; 12 | stroke: #999; 13 | } 14 | 15 | text { 16 | font-family: Helvetica Neue, Arial, sans-serif; 17 | font-size: 10px; 18 | fill: #666; 19 | } 20 | 21 | label { 22 | display: inline-block; 23 | margin-left: 10px; 24 | width: 20px; 25 | } 26 | 27 | #raw { 28 | position: absolute; 29 | top: 0; 30 | left: 300px; 31 | } 32 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-template-compilation/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Template Compilation 5 | 6 | 7 | 8 | 9 |
10 | 11 |
12 | 13 |
{{ result.render }}
14 | 15 |
_m({{ index }}): {{ fn }}
18 |
{{ result.staticRenderFns }}
21 |
22 |
23 | 24 |
{{ result }}
25 |
26 |
27 | 28 | 37 | 38 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-template-compilation/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-template-compilation", 3 | "version": "1.0.0", 4 | "description": "A demo using Vue.compile to live-compile a template string.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-template-compilation/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-template-compilation/style.css: -------------------------------------------------------------------------------- 1 | *, 2 | *::before, 3 | *::after { 4 | box-sizing: border-box; 5 | } 6 | 7 | body { 8 | font-family: "Source Sans Pro", "Helvetica Neue", Arial, sans-serif; 9 | -webkit-user-select: inherit; 10 | user-select: inherit; 11 | font-size: 14px; 12 | color: #34495e; 13 | } 14 | 15 | pre { 16 | padding: 10px; 17 | overflow-x: auto; 18 | background: #f2f2f2; 19 | } 20 | 21 | code { 22 | white-space: pre; 23 | padding: 0; 24 | } 25 | 26 | code, 27 | pre, 28 | textarea { 29 | font-family: "Roboto Mono", Monaco, courier, monospace; 30 | } 31 | 32 | textarea { 33 | width: 100%; 34 | font-size: 14px; 35 | margin-bottom: 8px; 36 | border-color: #bbb; 37 | padding: 8px; 38 | border-bottom-width: 2px; 39 | outline: none; 40 | color: #34495e; 41 | } 42 | 43 | textarea:focus { 44 | background: lightyellow; 45 | } 46 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-todomvc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-todomvc", 3 | "version": "1.0.0", 4 | "description": "This is a fully spec-compliant TodoMVC implementation in under 120 effective lines of JavaScript (excluding comments and blank lines).", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-todomvc/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-tree-view/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-tree-view", 3 | "version": "1.0.0", 4 | "description": "Example of a simple tree view implementation showcasing recursive usage of components.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-tree-view/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-tree-view/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: Menlo, Consolas, monospace; 3 | color: #444; 4 | } 5 | .item { 6 | cursor: pointer; 7 | } 8 | .bold { 9 | font-weight: bold; 10 | } 11 | ul { 12 | padding-left: 1em; 13 | line-height: 1.5em; 14 | list-style-type: dot; 15 | } 16 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-two-way-currency-filter/currency-validator.js: -------------------------------------------------------------------------------- 1 | var currencyValidator = { 2 | format: function(number) { 3 | return (Math.trunc(number * 100) / 100).toFixed(2); 4 | }, 5 | parse: function(newString, oldNumber) { 6 | var CleanParse = function(value) { 7 | return { value: value }; 8 | }; 9 | var CurrencyWarning = function(warning, value) { 10 | return { 11 | warning: warning, 12 | value: value, 13 | attempt: newString 14 | }; 15 | }; 16 | var NotAValidDollarAmountWarning = function(value) { 17 | return new CurrencyWarning( 18 | newString + " is not a valid dollar amount", 19 | value 20 | ); 21 | }; 22 | var AutomaticConversionWarning = function(value) { 23 | return new CurrencyWarning( 24 | newString + " was automatically converted to " + value, 25 | value 26 | ); 27 | }; 28 | 29 | var newNumber = Number(newString); 30 | var indexOfDot = newString.indexOf("."); 31 | var indexOfE = newString.indexOf("e"); 32 | 33 | if (isNaN(newNumber)) { 34 | if ( 35 | indexOfDot === -1 && 36 | indexOfE > 0 && 37 | indexOfE === newString.length - 1 && 38 | Number(newString.slice(0, indexOfE)) !== 0 39 | ) { 40 | return new CleanParse(oldNumber); 41 | } else { 42 | return new NotAValidDollarAmountWarning(oldNumber); 43 | } 44 | } 45 | 46 | var newCurrencyString = currencyValidator.format(newNumber); 47 | var newCurrencyNumber = Number(newCurrencyString); 48 | 49 | if (newCurrencyNumber === newNumber) { 50 | if (indexOfE !== -1 && indexOfE === newString.length - 2) { 51 | return new AutomaticConversionWarning(newNumber); 52 | } else { 53 | return new CleanParse(newNumber); 54 | } 55 | } else { 56 | return new NotAValidDollarAmountWarning( 57 | newNumber > newCurrencyNumber ? newCurrencyNumber : oldNumber 58 | ); 59 | } 60 | } 61 | }; 62 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-two-way-currency-filter/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-two-way-currency-filter", 3 | "version": "1.0.0", 4 | "description": "Using lifecycle hooks and DOM events in place of the hidden behavior of two-way filters", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-two-way-currency-filter/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-wrapper-component/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Wrapper Component 5 | 6 | 7 | 8 | 9 | 14 | 23 | 24 | 25 |
26 | 27 | 28 | 36 | 37 | 42 | 43 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /src/v2/examples/vue-20-wrapper-component/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-20-wrapper-component", 3 | "version": "1.0.0", 4 | "description": "In this example we are integrating a 3rd party jQuery plugin (select2) by wrapping it inside a custom component.", 5 | "main": "index.html", 6 | "scripts": { 7 | "start": "serve" 8 | }, 9 | "keywords": [], 10 | "license": "MIT", 11 | "devDependencies": { 12 | "serve": "^11.2.0" 13 | } 14 | } -------------------------------------------------------------------------------- /src/v2/examples/vue-20-wrapper-component/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "static" 3 | } 4 | -------------------------------------------------------------------------------- /src/v2/guide/routing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Routing 3 | type: guide 4 | order: 501 5 | --- 6 | 7 | ## Official Router 8 | 9 | For most Single Page Applications, it's recommended to use the officially-supported [vue-router library](https://github.com/vuejs/vue-router). For more details, see vue-router's [documentation](https://router.vuejs.org/). 10 | 11 | ## Simple Routing From Scratch 12 | 13 | If you only need very simple routing and do not wish to involve a full-featured router library, you can do so by dynamically rendering a page-level component like this: 14 | 15 | ``` js 16 | const NotFound = { template: '

Page not found

' } 17 | const Home = { template: '

home page

' } 18 | const About = { template: '

about page

' } 19 | 20 | const routes = { 21 | '/': Home, 22 | '/about': About 23 | } 24 | 25 | new Vue({ 26 | el: '#app', 27 | data: { 28 | currentRoute: window.location.pathname 29 | }, 30 | computed: { 31 | ViewComponent () { 32 | return routes[this.currentRoute] || NotFound 33 | } 34 | }, 35 | render (h) { return h(this.ViewComponent) } 36 | }) 37 | ``` 38 | 39 | Combined with the HTML5 History API, you can build a very basic but fully-functional client-side router. To see that in practice, check out [this example app](https://github.com/chrisvfritz/vue-2.0-simple-routing-example). 40 | 41 | ## Integrating 3rd-Party Routers 42 | 43 | If there's a 3rd-party router you prefer to use, such as [Page.js](https://github.com/visionmedia/page.js) or [Director](https://github.com/flatiron/director), integration is [similarly easy](https://github.com/chrisvfritz/vue-2.0-simple-routing-example/compare/master...pagejs). Here's a [complete example](https://github.com/chrisvfritz/vue-2.0-simple-routing-example/tree/pagejs) using Page.js. 44 | -------------------------------------------------------------------------------- /src/v2/guide/ssr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Server-Side Rendering 3 | type: guide 4 | order: 503 5 | --- 6 | 7 | ## The Complete SSR Guide 8 | 9 | We have created a standalone guide for creating server-rendered Vue applications. This is a very in-depth guide for those who are already familiar with client-side Vue development, server-side Node.js development and webpack. Check it out at [v2.ssr.vuejs.org](https://v2.ssr.vuejs.org/). 10 | 11 | ## Nuxt.js 12 | 13 | Properly configuring all the discussed aspects of a production-ready server-rendered app can be a daunting task. Luckily, there is an excellent community project that aims to make all of this easier: [Nuxt.js](https://nuxtjs.org/). Nuxt.js is a higher-level framework built on top of the Vue ecosystem which provides an extremely streamlined development experience for writing universal Vue applications. Better yet, you can even use it as a static site generator (with pages authored as single-file Vue components)! We highly recommend giving it a try. 14 | 15 | ## Quasar Framework SSR + PWA 16 | 17 | [Quasar Framework](https://quasar.dev) will generate an SSR app (with optional PWA handoff) that leverages its best-in-class build system, sensible configuration and developer extensibility to make designing and building your idea a breeze. With over one hundred specific "Material Design 2.0"-compliant components, you can decide which ones to execute on the server, which are available in the browser - and even manage the `` tags of your site. Quasar is a node.js and webpack based development environment that supercharges and streamlines rapid development of SPA, PWA, SSR, Electron, Capacitor and Cordova apps - all from one codebase. 18 | -------------------------------------------------------------------------------- /src/v2/search/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Search Vue.js 3 | type: search 4 | search: true 5 | --- -------------------------------------------------------------------------------- /themes/vue/layout/icons/bch.ejs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/vue/layout/icons/btc.ejs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/vue/layout/icons/eth.ejs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/vue/layout/icons/github-dark.ejs: -------------------------------------------------------------------------------- 1 | GitHub Dark icon 2 | -------------------------------------------------------------------------------- /themes/vue/layout/icons/github.ejs: -------------------------------------------------------------------------------- 1 | GitHub icon 2 | -------------------------------------------------------------------------------- /themes/vue/layout/icons/ltc.ejs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/vue/layout/icons/medium.ejs: -------------------------------------------------------------------------------- 1 | Medium icon 2 | -------------------------------------------------------------------------------- /themes/vue/layout/icons/play.ejs: -------------------------------------------------------------------------------- 1 | Play icon 2 | -------------------------------------------------------------------------------- /themes/vue/layout/icons/twitter.ejs: -------------------------------------------------------------------------------- 1 | Twitter icon 2 | -------------------------------------------------------------------------------- /themes/vue/layout/page.ejs: -------------------------------------------------------------------------------- 1 | <% if (page.type) { %> <%- partial('partials/sidebar', { type: page.type === 2 | 'menu' ? 'guide' : page.type, index: page.index }) %> <% } else { %> 3 | 8 | <% } %> 9 |
12 | <% if (page.type) { %> <% if (page.type === 'menu') { %> 13 |
14 | 20 |
21 | <%- partial('partials/toc', { type: 'guide' }) %> <% } else { %> <%- 22 | partial('partials/ad') %> <% } %> <% } %> <% if (page.title.trim()) { %> 23 |

<%- page.title %><%- page.type === 'examples' ? ' Example' : '' %>

24 | <% } %> <% if (page.sponsors) { %> <%- partial('sponsors-page') %> <% } else 25 | if (page.partners) { %> <%- partial('partners-page') %> <% } else if 26 | (page.search) { %> <%- partial('search-page') %> <% } else { %> <%- 27 | page.content %> <% } %> <% if (page.type === 'guide') { %> 28 | 41 | <% } %> 42 | 57 |
58 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/ad-text.ejs: -------------------------------------------------------------------------------- 1 | 2 |
3 | 11 | 12 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/ad.ejs: -------------------------------------------------------------------------------- 1 | <% if (!page.sponsors && !page.partners) { %> 2 | 10 | <% } %> 11 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/conf.ejs: -------------------------------------------------------------------------------- 1 |
2 | 3 | vueconf 4 |

The first VueConf EU is being held in Wrocław, Poland, June 21-23!

5 |
6 |
7 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/ecosystem_dropdown.ejs: -------------------------------------------------------------------------------- 1 | 35 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/header.ejs: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | Upgrade to Vue 3 5 | 6 | | 7 | Vue 2 EOL 8 |
9 | 10 | 19 |
20 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/language_dropdown.ejs: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/learn_dropdown.ejs: -------------------------------------------------------------------------------- 1 | 35 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/main_menu.ejs: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 | 4 |
    5 |
  • 6 | <%- partial('partials/learn_dropdown') %> 7 | <%- partial('partials/ecosystem_dropdown') %> 8 | <%- partial('partials/resources_dropdown') %> 9 |
  • 10 | EOLNEW 11 |
  • 12 | <%- partial('partials/language_dropdown') %> 13 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/platinum_sponsors.ejs: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/resources_dropdown.ejs: -------------------------------------------------------------------------------- 1 | 40 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/sidebar.ejs: -------------------------------------------------------------------------------- 1 | <% var isHomePage = page.path === 'index.html' %> 2 | 3 | 37 | <% if (!page.sponsors && !page.partners) { %> 38 | <%- partial('partials/platinum_sponsors', { context: 'right' }) %> 39 | <% } %> 40 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/sponsors.ejs: -------------------------------------------------------------------------------- 1 | <% function logo(img) { return `https://sponsors.vuejs.org/images/${img}` } %> 2 | 3 |

    Patreon Sponsors

    4 | 5 | <%_ for (const sponsor of theme.platinum) {_%> 6 | 9 | <%_ } _%> 10 |
    11 |
    12 | <%_ for (const sponsor of theme.gold) {_%> 13 | 16 | <%_ } _%> 17 |
    18 | 19 | ">Become a Sponsor! 20 | 21 | 31 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/sponsors_sidebar.ejs: -------------------------------------------------------------------------------- 1 | <% function logo(img) { return `https://sponsors.vuejs.org/images/${img}` } %> 2 | 3 | <%_ if (theme.special) { _%> 4 | 16 | <%_ } _%> 17 | <%_ if (!page.sponsors && !page.partners) { _%> 18 | <%- partial('partials/platinum_sponsors', { context: 'left' }) %> 19 | <%_ } _%> 20 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/support_vue_dropdown.ejs: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/toc.ejs: -------------------------------------------------------------------------------- 1 | 38 | -------------------------------------------------------------------------------- /themes/vue/layout/partials/vueschool_banner.ejs: -------------------------------------------------------------------------------- 1 | 2 |
    3 | 4 |
    5 |
    6 |
    7 |
    8 |
    9 |
    10 |
    11 |
    12 |
    13 |
    16 | Close 17 |
    18 |
    19 |
    20 | -------------------------------------------------------------------------------- /themes/vue/layout/post.ejs: -------------------------------------------------------------------------------- 1 | 23 |
    24 | <%- partial('partials/ad') %> 25 |

    <%- page.title %>

    26 |

    <%- page.date.format('MMM D[,] YYYY') %>

    27 | <%- page.content %> 28 |
    29 | -------------------------------------------------------------------------------- /themes/vue/source/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | #ffffff 9 | 10 | 11 | -------------------------------------------------------------------------------- /themes/vue/source/css/_ad.styl: -------------------------------------------------------------------------------- 1 | // main ad placement (bottom right) 2 | #ad 3 | width 125px 4 | position fixed 5 | z-index ($z-header - 1) 6 | bottom 10px 7 | right 10px 8 | padding 10px 9 | background-color #fff 10 | border-radius 3px 11 | font-size 13px 12 | a 13 | display inline-block 14 | color $light 15 | font-weight normal 16 | span 17 | color $light 18 | display block 19 | img 20 | width 125px 21 | .carbon-img, .carbon-text 22 | display block 23 | margin-bottom 4px 24 | font-weight normal 25 | color $medium 26 | .carbon-poweredby 27 | color #aaa 28 | font-size 10px 29 | letter-spacing .8px 30 | text-transform uppercase 31 | font-weight normal 32 | 33 | // text ad (end of the documentation) 34 | #bsa-native 35 | .native-box 36 | box-shadow inset 0 0 0 1px hsla(0, 0%, 0%, .075) 37 | background-color #f8f8f8; 38 | color $medium 39 | display flex 40 | border-radius 3px; 41 | padding .65em 1em 42 | align-items center 43 | margin-bottom 1.2em 44 | .native-link 45 | text-decoration none 46 | display flex 47 | align-items center 48 | padding 10px 14px 49 | .native-sponsor 50 | background-color #41b983 51 | color #fff 52 | font-size 12px 53 | border-radius 2px 54 | margin-right 1em 55 | line-height 1 56 | padding 6px 10px 57 | font-weight 600 58 | text-transform uppercase 59 | .native-text 60 | font-weight normal 61 | line-height 1.35 62 | text-align left 63 | 64 | 65 | @media print 66 | #ad 67 | display none 68 | -------------------------------------------------------------------------------- /themes/vue/source/css/_animations.styl: -------------------------------------------------------------------------------- 1 | .rotating-clockwise 2 | animation: 3s rotating-clockwise linear infinite 3 | 4 | i.rotating-clockwise 5 | display: inline-block 6 | animation-duration: 2s 7 | 8 | @keyframes rotating-clockwise 9 | from 10 | transform: rotate(0) 11 | to 12 | transform: rotate(360deg) 13 | -------------------------------------------------------------------------------- /themes/vue/source/css/_api.styl: -------------------------------------------------------------------------------- 1 | .content.api 2 | h2, h3 3 | > sup 4 | margin-left: .3em 5 | color: #b9465c 6 | -------------------------------------------------------------------------------- /themes/vue/source/css/_demo.styl: -------------------------------------------------------------------------------- 1 | #demo, .demo, .content .demo 2 | border: 1px solid #eee 3 | border-radius: $radius 4 | padding: 25px 35px 5 | margin-top: 1em 6 | margin-bottom: 40px 7 | -webkit-user-select: none 8 | -moz-user-select: none 9 | -ms-user-select: none 10 | user-select: none 11 | overflow-x: auto 12 | h1 13 | margin: 0 0 .5em 14 | font-size: 1.8em 15 | h2 16 | padding: 0 17 | border: none 18 | h2, h3, h4, h5, h6 19 | margin: 1em 0 20 | ul, ol 21 | padding-left: 1.5em 22 | padding-bottom: .2em !important 23 | &:first-child 24 | margin-top: 0 25 | &:last-child 26 | margin-bottom: 0 27 | li 28 | color: $medium 29 | // !!TODO: Check to make sure this isn't here for a good reason. 30 | // cursor: pointer 31 | // -ms-user-select: none 32 | // -moz-user-select: none 33 | // -webkit-user-select: none 34 | &.done 35 | color: $light 36 | text-decoration: line-through 37 | p 38 | margin: 0 !important 39 | padding: 0 !important 40 | textarea 41 | width: 100% 42 | resize: vertical 43 | > :first-child 44 | margin-top: 0 45 | > :last-child 46 | margin-bottom: 0 47 | 48 | 49 | 50 | ul#demo, ul.demo 51 | li 52 | margin-left: 1.5em 53 | 54 | @media screen and (max-width: 900px) 55 | #demo, .demo 56 | margin-left: 0 57 | 58 | .benchmark-table 59 | margin: 0 auto 60 | text-align: center 61 | 62 | tbody > tr > th 63 | text-align: right 64 | 65 | th, td 66 | padding: 3px 7px 67 | 68 | @media print 69 | #demo, .demo, .content .demo 70 | page-break-inside: avoid 71 | padding: 1em 72 | margin-bottom: 1em 73 | border-width: 2px 74 | -------------------------------------------------------------------------------- /themes/vue/source/css/_migration.styl: -------------------------------------------------------------------------------- 1 | .content.guide[class*="migration"] 2 | h2, h3 3 | > sup 4 | margin-left: .3em 5 | color: #b9465c 6 | .upgrade-path 7 | margin-top: 2em 8 | padding: 2em 9 | background: rgba(73, 195, 140, .1) 10 | border-radius: 2px 11 | > h4 12 | margin-top: 0 13 | > p:last-child 14 | margin-bottom: 0 15 | padding-bottom: 0 16 | -------------------------------------------------------------------------------- /themes/vue/source/css/_modal.styl: -------------------------------------------------------------------------------- 1 | .modal 2 | box-sizing: border-box 3 | display: none 4 | position: fixed 5 | width: 75% 6 | height: auto 7 | padding: .5em 8 | background-color: #f9f9f9 9 | box-shadow: 0 0 10px rgba(0,0,0,.2) 10 | &.open 11 | display: block 12 | top: 50% 13 | left: 50% 14 | transform: translate(-50%, -50%) 15 | z-index: $z-modal 16 | .modal-text 17 | margin-bottom 0.5em 18 | text-align center 19 | > a 20 | color $green 21 | font-weight 600 22 | .overlay 23 | position: fixed 24 | top: 0 25 | bottom: 0 26 | left: 0 27 | right: 0 28 | background: rgba(0,0,0,.2) 29 | z-index: $z-overlay 30 | .stop-scroll 31 | overflow: hidden 32 | height: 100% 33 | @media screen and (max-width: 400px) 34 | .modal 35 | width: 98% 36 | -------------------------------------------------------------------------------- /themes/vue/source/css/_offline-menu.styl: -------------------------------------------------------------------------------- 1 | .content.menu 2 | font-size: 1.2em 3 | .menu-root 4 | padding-left: 0 5 | #search-form, .algolia-autocomplete, input 6 | width: 100% 7 | .aa-dropdown-menu 8 | box-sizing: border-box 9 | h3 10 | margin: 1.5em 0 .75em 11 | &:before, &:after 12 | display: none 13 | li 14 | list-style-type: none 15 | margin-top: .1em 16 | -------------------------------------------------------------------------------- /themes/vue/source/css/_partners.styl: -------------------------------------------------------------------------------- 1 | @import "_settings" 2 | #partners 3 | .partner 4 | display: flex 5 | padding: 25px 0 6 | border-bottom: 1px dotted #ddd 7 | &:first-of-type 8 | margin-top: 15px 9 | &:last-of-type 10 | border-bottom: none 11 | .logo 12 | flex: 0 0 125px 13 | .profile 14 | padding: 0 26px 15 | flex: 1 16 | h3 17 | margin: 0 18 | font-size: 1.3em 19 | p 20 | margin-top: 0 21 | dl 22 | margin: .6em 0 0 23 | dt, dd, ul, li 24 | display: inline 25 | padding: 0 26 | margin: 0 27 | line-height: 1.3 28 | dt 29 | text-transform: uppercase 30 | font-size: .84em 31 | font-weight: 600 32 | &::after 33 | content: "" 34 | margin-right: 7px 35 | i 36 | width: 14px 37 | text-align: center 38 | &.fa-map-marker 39 | font-size: 1.15em 40 | &.fa-globe 41 | font-size: 1.2em 42 | &.fa-link 43 | font-size: 1.05em 44 | dd 45 | font-weight: 600 46 | &::after 47 | display: block 48 | content: "" 49 | margin-top: .6em 50 | li 51 | display: inline-block 52 | &::after 53 | display: inline-block 54 | content: "·" 55 | margin: 0 8px 56 | &:last-child::after 57 | content: "" 58 | .social 59 | a 60 | color: #000 61 | display: inline-block 62 | line-height: 1 63 | vertical-align: middle 64 | margin-right: 4px 65 | &.github 66 | color: #000 67 | &.twitter 68 | color: #1da1f3 69 | &.linkedin 70 | color: #0077B5 71 | &.instagram 72 | color: #C13584 73 | &.youtube 74 | color: #f00 75 | i 76 | vertical-align: text-bottom 77 | font-size: 1.3em 78 | -------------------------------------------------------------------------------- /themes/vue/source/css/_scrimba.styl: -------------------------------------------------------------------------------- 1 | .scrimba, .vueschool 2 | background-color #e7ecf3 3 | padding 1em 1.25em 4 | border-radius 2px 5 | color #486491 6 | position relative 7 | a 8 | color #486491 !important 9 | position relative 10 | padding-left 36px 11 | &:before 12 | content '' 13 | position absolute 14 | display block 15 | width 30px 16 | height 30px 17 | top -5px 18 | left -4px 19 | border-radius 50% 20 | background-color #73abfe 21 | &:after 22 | content '' 23 | position absolute 24 | display block 25 | width 0 26 | height 0 27 | top 5px 28 | left 8px 29 | border-top 5px solid transparent 30 | border-bottom 5px solid transparent 31 | border-left 8px solid #fff 32 | -------------------------------------------------------------------------------- /themes/vue/source/css/_search-page.styl: -------------------------------------------------------------------------------- 1 | #search-page 2 | .search-form 3 | .search-query 4 | width: 100% 5 | border-radius: 5px 6 | margin-right: 0 7 | .search-footer 8 | display: flex 9 | height: 35px 10 | align-items: center 11 | justify-content: space-between 12 | margin-bottom: 15px 13 | p 14 | margin: 0 15 | padding: 0 16 | .search-result 17 | margin-bottom: 15px; 18 | .title 19 | display: block 20 | font-size: 17.55px 21 | .summary 22 | padding: 0 23 | margin: 0 24 | .breadcrumb 25 | color: $light 26 | & + .breadcrumb::before 27 | content: "\203A\A0" 28 | margin-left: 5px 29 | color: $light 30 | -------------------------------------------------------------------------------- /themes/vue/source/css/_settings.styl: -------------------------------------------------------------------------------- 1 | // font faces 2 | $body-font = "Source Sans Pro", "Helvetica Neue", Arial, sans-serif 3 | $logo-font = "Dosis", "Source Sans Pro", "Helvetica Neue", Arial, sans-serif 4 | $code-font = "Roboto Mono", Monaco, courier, monospace 5 | 6 | // font sizes 7 | $body-font-size = 1rem 8 | $code-font-size = .85em 9 | 10 | // colors 11 | $dark = #273849 12 | $medium = #304455 13 | $light = #4f5959 14 | $green = #42b983 15 | $border = #dddddd 16 | $codebg = #f8f8f8 17 | $red = #ff6666 18 | $info = #1C90F3 19 | 20 | $radius = 2px 21 | $content-padding-vertical = 35px 22 | 23 | // header settings 24 | $header-inner-height = 41px 25 | $heading-padding-vertical = 10px 26 | $v3-banner-height = 40px 27 | $header-height = $header-inner-height + $heading-padding-vertical * 2 + $v3-banner-height 28 | $mobile-header-height = 40px 29 | // prevent headers from being covered by the top nav upon navigation 30 | $heading-link-padding-top = $header-height + $content-padding-vertical 31 | $mobile-heading-link-padding-top = $mobile-header-height + $content-padding-vertical 32 | $h2-margin-top = 45px 33 | $h3-margin-top = 52px 34 | 35 | // z-index manifest 36 | $z-base = 1 37 | $z-sidebar = 10 38 | $z-header = 20 39 | $z-overlay = 30 40 | $z-modal = 40 41 | -------------------------------------------------------------------------------- /themes/vue/source/css/_sidebar.styl: -------------------------------------------------------------------------------- 1 | @import "_settings" 2 | 3 | .sidebar 4 | position: absolute 5 | z-index: $z-sidebar 6 | top: $header-height 7 | left: 0 8 | bottom: 0 9 | overflow-x: hidden 10 | overflow-y: auto 11 | -webkit-overflow-scrolling: touch 12 | -ms-overflow-style: none 13 | h2 14 | margin-top: .2em 15 | ul 16 | list-style-type: none 17 | margin: 0 18 | line-height: 1.5em 19 | padding-left: 1em 20 | li 21 | margin-top: .5em 22 | .sidebar-inner 23 | width: 260px 24 | padding: $content-padding-vertical 0px 60px 20px 25 | .version-select 26 | vertical-align: middle 27 | margin-left: 5px 28 | .menu-root 29 | padding-left: 0 30 | .sidebar-link 31 | color: $light 32 | &.current 33 | font-weight: 600 34 | color: $green 35 | &.new 36 | &:after 37 | content: "NEW" 38 | display: inline-block 39 | font-size: 10px 40 | font-weight: 600 41 | color: #fff 42 | background-color: $green 43 | line-height: 14px 44 | padding: 0 4px 45 | border-radius: 3px 46 | margin-left: 5px 47 | vertical-align: middle 48 | position: relative 49 | top: -1px 50 | &:hover 51 | border-bottom: 2px solid $green 52 | .section-link 53 | &.active 54 | font-weight: bold 55 | color: $green 56 | .main-menu 57 | margin-bottom: 20px 58 | display: none 59 | padding-left: 0 60 | .nav-dropdown 61 | h4 62 | font-weight: normal 63 | margin: 0 64 | 65 | @media screen and (max-width: 900px) 66 | .sidebar 67 | position: fixed 68 | background-color: #f9f9f9 69 | height: 100% 70 | top: 40px 71 | left: 0 72 | box-shadow: 0 0 10px rgba(0,0,0,.2) 73 | transition: all .4s cubic-bezier(0.4, 0, 0, 1) 74 | -webkit-transform: translate(-280px, 0) 75 | transform: translate(-280px, 0) 76 | .sidebar-inner 77 | padding: 60px 10px 30px 20px 78 | box-sizing: border-box 79 | .sidebar-inner-index 80 | padding: 10px 10px 10px 20px 81 | .search-query 82 | width: 200px 83 | margin-bottom: 10px 84 | .main-menu 85 | display: block 86 | &.open 87 | -webkit-transform: translate(0, 0) 88 | transform: translate(0, 0) 89 | 90 | @media print 91 | .sidebar 92 | display: none 93 | -------------------------------------------------------------------------------- /themes/vue/source/css/_sponsors-index.styl: -------------------------------------------------------------------------------- 1 | #sponsors 2 | text-align: center 3 | padding: 35px 40px 45px 4 | background-color: #f6f6f6 5 | .inner 6 | max-width: 700px 7 | margin: 0px auto 8 | h3 9 | color: #999 10 | margin: 0 0 10px 11 | a 12 | margin: 20px 15px 0 13 | position: relative 14 | display: inline-block 15 | &.sponsor 16 | width: 100px 17 | height: 60px 18 | line-height: 60px 19 | img 20 | max-width: 100% 21 | max-height: 100% 22 | vertical-align: middle 23 | transition: all .3s ease 24 | filter: grayscale(100%) 25 | opacity: 0.66 26 | &:hover 27 | filter: none 28 | opacity: 1 29 | a.vip 30 | display: block 31 | margin: 30px auto 15px 32 | width: 200px 33 | height: auto 34 | .become-sponsor 35 | margin-top: 40px 36 | font-size: .9em 37 | font-weight: 700 38 | width: auto 39 | background-color: transparent 40 | 41 | .open-collective-sponsors 42 | margin-top 60px 43 | a, img 44 | width: auto 45 | max-width: 100px 46 | max-height: 60px 47 | h4 48 | color #999 49 | margin-bottom 0 50 | &.active 51 | img 52 | filter: none 53 | opacity: 1 54 | -------------------------------------------------------------------------------- /themes/vue/source/css/_sponsors-page.styl: -------------------------------------------------------------------------------- 1 | .content 2 | .platinum 3 | text-align center 4 | a 5 | display inline-block 6 | margin 20px 7 | img 8 | width 250px 9 | vertical-align middle 10 | 11 | .sponsor-section 12 | text-align center 13 | margin-top 0 14 | margin-bottom 60px 15 | 16 | .patreon-sponsors 17 | a, img 18 | max-width: 140px 19 | max-height: 60px 20 | display: inline-block 21 | vertical-align: middle 22 | a 23 | margin: 10px 20px 24 | 25 | .open-collective-sponsors 26 | img 27 | max-width 140px 28 | max-height 60px 29 | margin-right 30px 30 | margin-bottom 20px 31 | 32 | #one-time-donations 33 | a, svg 34 | display inline-block 35 | vertical-align middle 36 | a 37 | margin 20px 38 | color $medium 39 | svg 40 | margin-right 5px 41 | 42 | #coin-details 43 | text-align center 44 | border-radius 4px 45 | padding 30px 46 | font-weight bold 47 | img 48 | width 200px 49 | p 50 | padding 0 51 | margin 0 0 20px 52 | -------------------------------------------------------------------------------- /themes/vue/source/css/_sponsors-sidebar.styl: -------------------------------------------------------------------------------- 1 | .main-sponsor 2 | color: $light 3 | font-size: .85em 4 | .logo 5 | color: $light 6 | width: 125px 7 | height: 50px 8 | font-weight: bold 9 | display flex 10 | align-items center 11 | justify-content center 12 | &:first-child 13 | margin-top: 18px 14 | &:last-child 15 | margin-bottom: 20px 16 | img 17 | max-width: 125px 18 | max-height: 50px 19 | 20 | .become-backer 21 | border: 1px solid $green 22 | border-radius: 2em 23 | display: inline-block 24 | color: $green 25 | font-size: .8em 26 | width: 125px 27 | padding: 4px 0 28 | text-align: center 29 | margin-bottom: 20px 30 | 31 | #sidebar-sponsors-platinum-left 32 | display block 33 | 34 | #sidebar-sponsors-platinum-right 35 | display none 36 | position fixed 37 | z-index ($z-header - 1) 38 | top 90px 39 | right 20px 40 | 41 | @media screen and (min-width: 1300px) 42 | #sidebar-sponsors-platinum-left 43 | display none 44 | #sidebar-sponsors-platinum-right 45 | display block 46 | -------------------------------------------------------------------------------- /themes/vue/source/css/_style-guide.styl: -------------------------------------------------------------------------------- 1 | $style-guide-bad-bg = lighten(desaturate($red, 50%), 80%) 2 | $style-guide-bad-text = darken(desaturate($red, 80%), 20%) 3 | $style-guide-good-bg = lighten(desaturate($green, 80%), 85%) 4 | $style-guide-good-text = darken(desaturate($green, 80%), 10%) 5 | 6 | $style-guide-priority-a-bg = $style-guide-bad-text 7 | $style-guide-priority-a-color = white 8 | $style-guide-priority-b-bg = $style-guide-bad-text 9 | $style-guide-priority-b-color = white 10 | $style-guide-priority-c-bg = steelblue 11 | $style-guide-priority-c-color = white 12 | $style-guide-priority-d-bg = $style-guide-bad-text 13 | $style-guide-priority-d-color = white 14 | 15 | .style-guide 16 | .style-example, details, .style-enforcement 17 | border-radius $radius 18 | margin: 1.6em 0 19 | padding: 1.6em 20 | h4 21 | margin-top: 0 22 | figure, p 23 | &:last-child 24 | margin-bottom: 0 25 | padding-bottom: 0 26 | .style-example 27 | &.example-bad 28 | background: $style-guide-bad-bg 29 | h4 30 | color: $style-guide-bad-text 31 | &.example-good 32 | background: $style-guide-good-bg 33 | h4 34 | color: $style-guide-good-text 35 | details, .style-enforcement 36 | background-color: #eee 37 | details 38 | display: block // Add the correct display in IE and Edge. 39 | position: relative 40 | &:not([open]) summary 41 | &::after 42 | content: "..." 43 | &:hover 44 | background: rgba(255, 255, 255, .3) 45 | summary 46 | cursor: pointer 47 | padding: 1.6em 48 | margin: -1.6em 49 | outline: none 50 | > h4 51 | display: inline-block 52 | margin: 0 53 | .style-enforcement 54 | table 55 | width: 100% 56 | background-color: $codebg 57 | border-radius: $radius 58 | th, td 59 | padding: .4em 60 | text-align: center 61 | th 62 | padding-bottom: .2em 63 | td 64 | padding-top: .2em 65 | .style-rule-tag 66 | background-color: $codebg 67 | border-radius: $radius 68 | font-size: .9em 69 | color: $style-guide-good-text 70 | font-weight: 600 71 | text-transform: uppercase 72 | padding: .1em .4em 73 | a > .style-rule-tag 74 | color: $green 75 | sup 76 | text-transform: uppercase 77 | font-size: .7em 78 | margin-left: 1em 79 | pointer-events: all 80 | position: absolute 81 | [data-p="a"] 82 | color: #6b2a2a 83 | [data-p="b"] 84 | color: #8c480a 85 | [data-p="c"] 86 | color: #2b5a99 87 | [data-p="d"] 88 | content: #3f536d 89 | -------------------------------------------------------------------------------- /themes/vue/source/css/_syntax.styl: -------------------------------------------------------------------------------- 1 | figure.highlight 2 | overflow-x auto 3 | 4 | figure.highlight > table 5 | width 100% 6 | 7 | pre 8 | border-radius: $radius 9 | position: relative 10 | 11 | pre code 12 | overflow-x: auto 13 | color: #525252 14 | white-space: pre 15 | padding: 1.2em 1.4em 16 | font-size: .85rem 17 | line-height: 1.6rem 18 | display: block 19 | 20 | .hljs 21 | &-tag, 22 | &-tag &-title, 23 | &-change, 24 | &-winutils, 25 | &-flow, 26 | &-tex &-special 27 | color: #2973b7 28 | 29 | &-symbol, 30 | &-symbol &-string, 31 | &-value, 32 | &-regexp 33 | &-string, 34 | &-subst, 35 | &-haskell &-type, 36 | &-preprocessor, 37 | &-ruby &-class &-parent, 38 | &-built_in, 39 | &-sql &-aggregate, 40 | &-django &-template_tag, 41 | &-django &-variable, 42 | &-smalltalk &-class, 43 | &-javadoc, 44 | &-django &-filter &-argument, 45 | &-smalltalk &-localvars, 46 | &-smalltalk &-array, 47 | &-attr_selector, 48 | &-pseudo, 49 | &-addition, 50 | &-stream, 51 | &-envvar, 52 | &-apache &-tag, 53 | &-apache &-cbracket, 54 | &-tex &-command, 55 | &-prompt 56 | color: $green 57 | 58 | &-function &-keyword, 59 | &-constant 60 | color: #0092db 61 | 62 | &-keyword, 63 | &-attribute 64 | color: #d63200 65 | 66 | &-number, 67 | &-literal 68 | color: #a32eff 69 | 70 | &-class &-title 71 | color: white 72 | 73 | &-title 74 | color: #a6e22e 75 | 76 | &-tag &-value, 77 | &-comment, 78 | &-java &-annotation, 79 | &-python &-decorator, 80 | &-template_comment, 81 | &-pi, 82 | &-doctype, 83 | &-deletion, 84 | &-shebang, 85 | &-apache &-sqbracket, 86 | &-tex &-formula 87 | color: #707070 88 | 89 | &-coffeescript &-javascript, 90 | &-javascript &-xml, 91 | &-tex &-formula, 92 | &-xml &-javascript, 93 | &-xml &-vbscript, 94 | &-xml &-css, 95 | &-xml &-cdata 96 | opacity: 0.5 97 | 98 | &.hljs 99 | &.html, &.js, &.bash, &.css 100 | &::before 101 | font-family: $body-font 102 | position: absolute 103 | top: 0 104 | right: 0 105 | color: #ccc 106 | text-align: right 107 | font-size: .9em 108 | padding: 5px 10px 0 109 | line-height: 15px 110 | height: 15px 111 | font-weight: 600 112 | 113 | &.html::before 114 | content: "HTML" 115 | 116 | &.js::before 117 | content: "JS" 118 | 119 | &.bash::before 120 | content: "Shell" 121 | 122 | &.css::before 123 | content: "CSS" 124 | -------------------------------------------------------------------------------- /themes/vue/source/css/_themes.styl: -------------------------------------------------------------------------------- 1 | $media-width = 1300px 2 | $item-margin-bottom = 10px 3 | $item-box-shadow = 0 2rem 1.5rem -1.5rem rgba(33,37,41,.15), 0 0 1.5rem 0.5rem rgba(33,37,41,.05) 4 | $item-box-shadow-hover = 0 2.25rem 1.5rem -1.5rem rgba(33,37,41,.2),0 0 1.5rem .5rem rgba(33,37,41,.05); 5 | 6 | .themes-grid 7 | display: flex 8 | flex-wrap: wrap 9 | justify-content space-between 10 | .item-preview 11 | width: 290px 12 | margin-bottom 25px 13 | .item-preview-img 14 | transition: .15s box-shadow,.15s transform 15 | border-radius: .5rem 16 | box-shadow $item-box-shadow 17 | overflow: hidden 18 | display block 19 | &:hover 20 | transform: translateY(-0.25rem) 21 | box-shadow: $item-box-shadow-hover 22 | img 23 | max-width: 100% 24 | height: auto 25 | border-radius: .5rem 26 | vertical-align: middle 27 | border-style: none 28 | .item-preview-name-container 29 | display flex 30 | justify-content space-between 31 | align-items center 32 | h3.item-preview-name 33 | margin-top: .7rem 34 | margin-bottom: 0 35 | &.free::after 36 | content: "FREE"; 37 | display: inline-block 38 | font-size: 10px 39 | font-weight: 600 40 | color: #fff 41 | background-color: $green 42 | line-height: 14px 43 | padding: 0 4px 44 | border-radius: 3px 45 | margin-left: 5px 46 | vertical-align: middle 47 | position: relative 48 | top: -1px 49 | .item-preview-price 50 | margin-top: .7rem 51 | .item-preview-description 52 | font-size: .9rem 53 | .see-more-container 54 | text-align: center; 55 | width: 100% 56 | .see-more-link 57 | color: $green 58 | display: inline-block 59 | width: auto 60 | 61 | @media screen and (max-width: $media-width) 62 | .themes-grid 63 | justify-content center 64 | .item-preview 65 | justify-content center 66 | width: 380px 67 | -------------------------------------------------------------------------------- /themes/vue/source/css/_vue-mastery.styl: -------------------------------------------------------------------------------- 1 | .vue-mastery 2 | background-color #e7ecf3 3 | padding 1em 1.25em 4 | border-radius 2px 5 | color #486491 6 | position relative 7 | margin-top 1em 8 | a 9 | color #486491 !important 10 | position relative 11 | padding-left 36px 12 | &:before 13 | content '' 14 | position absolute 15 | display block 16 | width 30px 17 | height 30px 18 | top -5px 19 | left -4px 20 | border-radius 50% 21 | background-color #73abfe 22 | &:after 23 | content '' 24 | position absolute 25 | display block 26 | width 0 27 | height 0 28 | top 5px 29 | left 8px 30 | border-top 5px solid transparent 31 | border-bottom 5px solid transparent 32 | border-left 8px solid #fff -------------------------------------------------------------------------------- /themes/vue/source/css/benchmark.styl: -------------------------------------------------------------------------------- 1 | #benchmark-results 2 | margin-bottom: 2em 3 | ul 4 | list-style-type: none 5 | padding: 0 6 | margin-left: 0 7 | 8 | .framework, .time, .bar, .inner 9 | display: inline-block 10 | 11 | .framework 12 | width: 4.2em 13 | // text-align: right 14 | margin-right: 1em 15 | font-weight: 600 16 | 17 | .time 18 | width: 4.2em 19 | margin-right: 1em 20 | 21 | .bar 22 | width: 60% 23 | &.min .inner 24 | background-color: #e74c3c 25 | 26 | .inner 27 | height: 3px 28 | vertical-align: middle 29 | background-color: #3498db 30 | 31 | @media screen and (max-width: 600px) 32 | #benchmark-results 33 | .bar 34 | width: 45% 35 | -------------------------------------------------------------------------------- /themes/vue/source/css/search.styl: -------------------------------------------------------------------------------- 1 | @import "_settings" 2 | 3 | $border = #ddd 4 | 5 | @media (max-width: 900px) 6 | .algolia-autocomplete 7 | position: fixed!important 8 | 9 | .algolia-autocomplete 10 | line-height: normal 11 | 12 | .aa-dropdown-menu 13 | width: 100% 14 | border-color: #999 15 | font-size: 0.9rem 16 | 17 | @media (min-width: 768px) 18 | .aa-dropdown-menu 19 | min-width: 515px 20 | 21 | .algolia-docsearch-suggestion 22 | border-color: $border 23 | 24 | .algolia-docsearch-suggestion--content 25 | color: $dark 26 | 27 | .algolia-docsearch-suggestion--subcategory-column 28 | border-color: $border 29 | 30 | .algolia-docsearch-suggestion--category-header 31 | background: $green 32 | 33 | .algolia-docsearch-footer 34 | border-color: $border 35 | 36 | .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight 37 | background: rgba(255, 255, 255, 0.6) 38 | 39 | .algolia-docsearch-suggestion--highlight 40 | color: #2c815b 41 | 42 | .aa-cursor .algolia-docsearch-suggestion--content 43 | color: $dark 44 | -------------------------------------------------------------------------------- /themes/vue/source/images/Monterail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/Monterail.png -------------------------------------------------------------------------------- /themes/vue/source/images/aaha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/aaha.png -------------------------------------------------------------------------------- /themes/vue/source/images/accelebrate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/accelebrate.png -------------------------------------------------------------------------------- /themes/vue/source/images/bacancy_technology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/bacancy_technology.png -------------------------------------------------------------------------------- /themes/vue/source/images/banners/bg-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/banners/bg-mobile.png -------------------------------------------------------------------------------- /themes/vue/source/images/banners/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/vue/source/images/banners/vs-iso.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/vue/source/images/bestvpn_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/bestvpn_co.png -------------------------------------------------------------------------------- /themes/vue/source/images/betting_bet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/betting_bet.png -------------------------------------------------------------------------------- /themes/vue/source/images/bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/bit.png -------------------------------------------------------------------------------- /themes/vue/source/images/blokt_cryptocurrency_news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/blokt_cryptocurrency_news.png -------------------------------------------------------------------------------- /themes/vue/source/images/chaitin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/chaitin.png -------------------------------------------------------------------------------- /themes/vue/source/images/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/check.png -------------------------------------------------------------------------------- /themes/vue/source/images/cloudstudio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/cloudstudio.png -------------------------------------------------------------------------------- /themes/vue/source/images/coding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/coding.png -------------------------------------------------------------------------------- /themes/vue/source/images/coin-bch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/coin-bch.png -------------------------------------------------------------------------------- /themes/vue/source/images/coin-btc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/coin-btc.png -------------------------------------------------------------------------------- /themes/vue/source/images/coin-eth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/coin-eth.png -------------------------------------------------------------------------------- /themes/vue/source/images/coin-ltc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/coin-ltc.png -------------------------------------------------------------------------------- /themes/vue/source/images/daily.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/daily.png -------------------------------------------------------------------------------- /themes/vue/source/images/das_keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/das_keyboard.png -------------------------------------------------------------------------------- /themes/vue/source/images/daskeyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/daskeyboard.png -------------------------------------------------------------------------------- /themes/vue/source/images/dcloud.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/dcloud.gif -------------------------------------------------------------------------------- /themes/vue/source/images/derek_pollard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/derek_pollard.png -------------------------------------------------------------------------------- /themes/vue/source/images/devexpress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/devexpress.png -------------------------------------------------------------------------------- /themes/vue/source/images/devsquad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/devsquad.png -------------------------------------------------------------------------------- /themes/vue/source/images/dopamine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/dopamine.png -------------------------------------------------------------------------------- /themes/vue/source/images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/down.png -------------------------------------------------------------------------------- /themes/vue/source/images/doximity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/doximity.png -------------------------------------------------------------------------------- /themes/vue/source/images/dronahq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/dronahq.png -------------------------------------------------------------------------------- /themes/vue/source/images/earthlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/earthlink.png -------------------------------------------------------------------------------- /themes/vue/source/images/empiricus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/empiricus.png -------------------------------------------------------------------------------- /themes/vue/source/images/emq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/emq.png -------------------------------------------------------------------------------- /themes/vue/source/images/energy_comparison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/energy_comparison.png -------------------------------------------------------------------------------- /themes/vue/source/images/exmax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/exmax.png -------------------------------------------------------------------------------- /themes/vue/source/images/fastcoding_inc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/fastcoding_inc.png -------------------------------------------------------------------------------- /themes/vue/source/images/feed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/feed.png -------------------------------------------------------------------------------- /themes/vue/source/images/fen_tre_online_solutions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/fen_tre_online_solutions.png -------------------------------------------------------------------------------- /themes/vue/source/images/finclip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/finclip.png -------------------------------------------------------------------------------- /themes/vue/source/images/firestick_tricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/firestick_tricks.png -------------------------------------------------------------------------------- /themes/vue/source/images/flowdash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/flowdash.png -------------------------------------------------------------------------------- /themes/vue/source/images/foo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/foo.png -------------------------------------------------------------------------------- /themes/vue/source/images/free_bets_us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/free_bets_us.png -------------------------------------------------------------------------------- /themes/vue/source/images/frontendlove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/frontendlove.png -------------------------------------------------------------------------------- /themes/vue/source/images/gitee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/gitee.png -------------------------------------------------------------------------------- /themes/vue/source/images/gridsome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/gridsome.png -------------------------------------------------------------------------------- /themes/vue/source/images/happy_programmer_llc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/happy_programmer_llc.png -------------------------------------------------------------------------------- /themes/vue/source/images/hbuilder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/hbuilder.png -------------------------------------------------------------------------------- /themes/vue/source/images/html_burger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/html_burger.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/android-icon-144x144.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/android-icon-192x192.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/android-icon-36x36.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/android-icon-48x48.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/android-icon-72x72.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/android-icon-96x96.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-114x114.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-144x144.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-57x57.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-60x60.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-72x72.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-76x76.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon-precomposed.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/apple-icon.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/bacancy_technology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/bacancy_technology.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/favicon-16x16.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/favicon-32x32.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/favicon-96x96.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/favicon.ico -------------------------------------------------------------------------------- /themes/vue/source/images/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/ms-icon-150x150.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/ms-icon-310x310.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons/ms-icon-70x70.png -------------------------------------------------------------------------------- /themes/vue/source/images/icons_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/icons_8.png -------------------------------------------------------------------------------- /themes/vue/source/images/inkoop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/inkoop.png -------------------------------------------------------------------------------- /themes/vue/source/images/intygrate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/intygrate.png -------------------------------------------------------------------------------- /themes/vue/source/images/ionic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/ionic.png -------------------------------------------------------------------------------- /themes/vue/source/images/isle_of_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/isle_of_code.png -------------------------------------------------------------------------------- /themes/vue/source/images/isolutions_uk_limited.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/isolutions_uk_limited.png -------------------------------------------------------------------------------- /themes/vue/source/images/jqwidgets_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/jqwidgets_.png -------------------------------------------------------------------------------- /themes/vue/source/images/jqwidgets_ltd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/jqwidgets_ltd.png -------------------------------------------------------------------------------- /themes/vue/source/images/laravel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/laravel.png -------------------------------------------------------------------------------- /themes/vue/source/images/layer0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/layer0.png -------------------------------------------------------------------------------- /themes/vue/source/images/lendio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/lendio.png -------------------------------------------------------------------------------- /themes/vue/source/images/line_corporation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/line_corporation.png -------------------------------------------------------------------------------- /themes/vue/source/images/litslink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/litslink.png -------------------------------------------------------------------------------- /themes/vue/source/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/logo.png -------------------------------------------------------------------------------- /themes/vue/source/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/vue/source/images/lowdefy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/lowdefy.png -------------------------------------------------------------------------------- /themes/vue/source/images/marcus_hiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/marcus_hiles.png -------------------------------------------------------------------------------- /themes/vue/source/images/memberful.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/memberful.png -------------------------------------------------------------------------------- /themes/vue/source/images/menu-blm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/menu-blm.png -------------------------------------------------------------------------------- /themes/vue/source/images/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/menu.png -------------------------------------------------------------------------------- /themes/vue/source/images/modus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/modus.png -------------------------------------------------------------------------------- /themes/vue/source/images/nativescript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/nativescript.png -------------------------------------------------------------------------------- /themes/vue/source/images/neds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/neds.png -------------------------------------------------------------------------------- /themes/vue/source/images/netflix_vpn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/netflix_vpn.png -------------------------------------------------------------------------------- /themes/vue/source/images/newicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/newicon.png -------------------------------------------------------------------------------- /themes/vue/source/images/nuxt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/nuxt.png -------------------------------------------------------------------------------- /themes/vue/source/images/okay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/okay.png -------------------------------------------------------------------------------- /themes/vue/source/images/onsen_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/onsen_ui.png -------------------------------------------------------------------------------- /themes/vue/source/images/opteo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/opteo.png -------------------------------------------------------------------------------- /themes/vue/source/images/passionate_people.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/passionate_people.png -------------------------------------------------------------------------------- /themes/vue/source/images/patreon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/patreon.png -------------------------------------------------------------------------------- /themes/vue/source/images/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/paypal.png -------------------------------------------------------------------------------- /themes/vue/source/images/philip_john_basile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/philip_john_basile.gif -------------------------------------------------------------------------------- /themes/vue/source/images/piratebay_proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/piratebay_proxy.png -------------------------------------------------------------------------------- /themes/vue/source/images/piratebayproxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/piratebayproxy.png -------------------------------------------------------------------------------- /themes/vue/source/images/plaid__inc_.svg: -------------------------------------------------------------------------------- 1 | plaid_yoko -------------------------------------------------------------------------------- /themes/vue/source/images/plaid_inc_.svg: -------------------------------------------------------------------------------- 1 | plaid_yoko -------------------------------------------------------------------------------- /themes/vue/source/images/primevue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/primevue.png -------------------------------------------------------------------------------- /themes/vue/source/images/programmers_io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/programmers_io.png -------------------------------------------------------------------------------- /themes/vue/source/images/quickbooks_tool_hub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/quickbooks_tool_hub.png -------------------------------------------------------------------------------- /themes/vue/source/images/refurbed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/refurbed.png -------------------------------------------------------------------------------- /themes/vue/source/images/retool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/retool.png -------------------------------------------------------------------------------- /themes/vue/source/images/roadster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/roadster.png -------------------------------------------------------------------------------- /themes/vue/source/images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/search.png -------------------------------------------------------------------------------- /themes/vue/source/images/shopware_ag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/shopware_ag.png -------------------------------------------------------------------------------- /themes/vue/source/images/special-sponsor-spot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/special-sponsor-spot.png -------------------------------------------------------------------------------- /themes/vue/source/images/staff_augmentation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/staff_augmentation.png -------------------------------------------------------------------------------- /themes/vue/source/images/stdlib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/stdlib.png -------------------------------------------------------------------------------- /themes/vue/source/images/storekit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/storekit.png -------------------------------------------------------------------------------- /themes/vue/source/images/storyblok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/storyblok.png -------------------------------------------------------------------------------- /themes/vue/source/images/syncfusion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/syncfusion.png -------------------------------------------------------------------------------- /themes/vue/source/images/takt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/takt.png -------------------------------------------------------------------------------- /themes/vue/source/images/tatvasoft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/tatvasoft.png -------------------------------------------------------------------------------- /themes/vue/source/images/team_extension_north_america_inc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/team_extension_north_america_inc.png -------------------------------------------------------------------------------- /themes/vue/source/images/tee__.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/tee__.png -------------------------------------------------------------------------------- /themes/vue/source/images/tendermint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/tendermint.png -------------------------------------------------------------------------------- /themes/vue/source/images/tidelift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/tidelift.png -------------------------------------------------------------------------------- /themes/vue/source/images/tighten_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/tighten_co.png -------------------------------------------------------------------------------- /themes/vue/source/images/tooltwist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/tooltwist.png -------------------------------------------------------------------------------- /themes/vue/source/images/troypoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/troypoint.png -------------------------------------------------------------------------------- /themes/vue/source/images/unicorn_io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/unicorn_io.png -------------------------------------------------------------------------------- /themes/vue/source/images/usave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/usave.png -------------------------------------------------------------------------------- /themes/vue/source/images/valuecoders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/valuecoders.png -------------------------------------------------------------------------------- /themes/vue/source/images/vehikl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/vehikl.png -------------------------------------------------------------------------------- /themes/vue/source/images/vpn_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/vpn_review.png -------------------------------------------------------------------------------- /themes/vue/source/images/vpnranks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/vpnranks.png -------------------------------------------------------------------------------- /themes/vue/source/images/vpsserver_com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/vpsserver_com.png -------------------------------------------------------------------------------- /themes/vue/source/images/vuejobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/vuejobs.png -------------------------------------------------------------------------------- /themes/vue/source/images/vuemastery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/vuemastery.png -------------------------------------------------------------------------------- /themes/vue/source/images/vueschool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/vueschool.png -------------------------------------------------------------------------------- /themes/vue/source/images/vuetify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/vuetify.png -------------------------------------------------------------------------------- /themes/vue/source/images/vuetraining_net__note__since_i_m_not_sure_where_else_to_put_it____this_is_replacing_vuescreencasts___they_re_both_run_by_me__i_m_just_switching_where_i_want_my_sponsorship_to_point_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/vuetraining_net__note__since_i_m_not_sure_where_else_to_put_it____this_is_replacing_vuescreencasts___they_re_both_run_by_me__i_m_just_switching_where_i_want_my_sponsorship_to_point_.png -------------------------------------------------------------------------------- /themes/vue/source/images/watchcartoononline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/watchcartoononline.png -------------------------------------------------------------------------------- /themes/vue/source/images/webdock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/webdock.png -------------------------------------------------------------------------------- /themes/vue/source/images/webucator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/webucator.png -------------------------------------------------------------------------------- /themes/vue/source/images/wilderminds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/wilderminds.png -------------------------------------------------------------------------------- /themes/vue/source/images/writers_per_hour.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/writers_per_hour.jpg -------------------------------------------------------------------------------- /themes/vue/source/images/x_team.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/x_team.png -------------------------------------------------------------------------------- /themes/vue/source/images/y8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/y8.png -------------------------------------------------------------------------------- /themes/vue/source/images/yakaz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/v2.vuejs.org/e468cc04e4da67ea758682609fc85e721916e7cf/themes/vue/source/images/yakaz.png -------------------------------------------------------------------------------- /themes/vue/source/js/v3-notice.js: -------------------------------------------------------------------------------- 1 | ;(() => { 2 | if (!location.search.includes(`redirect=true`)) { 3 | return 4 | } 5 | 6 | const v3Url = document.body.dataset.v3Url 7 | if (!v3Url) { 8 | return 9 | } 10 | 11 | const hashRedirect = 12 | typeof __pageRedirects !== 'undefined' && __pageRedirects[location.hash] 13 | const finalUrl = hashRedirect || v3Url 14 | 15 | const el = document.createElement('div') 16 | el.className = `v3-notice` 17 | el.innerHTML = ` 18 |

    Heads Up!

    19 |

    20 | This page contains documentation for Vue 2. The Vue 3 version of the URL you are visiting is: . 21 |

    22 |

    23 | You can learn more about the Vue 2 -> Vue 3 default version switch in 24 | this blog post. 25 |

    26 |

    27 | Stay on Vue 2 docs 28 |

    29 | `.trim() 30 | 31 | const style = document.createElement('style') 32 | style.textContent = ` 33 | .v3-notice { 34 | position: fixed; 35 | top: 20px; 36 | --width: min(calc(100vw - 20px), 500px); 37 | left: calc(50vw - var(--width) / 2); 38 | width: var(--width); 39 | z-index: 9999; 40 | background-color: #f8f8f8; 41 | border: 2px solid #ffa500; 42 | border-radius: 8px; 43 | padding: 0 20px; 44 | box-shadow: 0 10px 28px rgba(0,0,0,0.25); 45 | } 46 | .v3-notice a { 47 | color: #42b983; 48 | font-weight: bold; 49 | } 50 | .v3-notice .go, .v3-notice .stay { 51 | display: inline-block; 52 | padding: 8px 12px; 53 | border-radius: 4px; 54 | cursor: pointer; 55 | } 56 | .v3-notice .go { 57 | background-color: #42b983; 58 | color: #fff; 59 | } 60 | .v3-notice .stay { 61 | background-color: #ddd; 62 | color: #666; 63 | } 64 | .v3-notice code { 65 | background-color: transparent; 66 | } 67 | ` 68 | 69 | document.body.appendChild(style) 70 | document.body.appendChild(el) 71 | 72 | el.querySelector('.stay').addEventListener('click', () => { 73 | document.body.removeChild(el) 74 | }) 75 | 76 | const v3Link = el.querySelector('#v3-url') 77 | v3Link.textContent = v3Link.href = `https://vuejs.org${finalUrl}` 78 | })() 79 | -------------------------------------------------------------------------------- /themes/vue/source/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "background_color": "#ffffff", 3 | "description": "The Progressive JavaScript Framework", 4 | "display": "standalone", 5 | "icons": [ 6 | { 7 | "src": "\/images\/icons\/android-icon-36x36.png", 8 | "sizes": "36x36", 9 | "type": "image\/png", 10 | "density": "0.75" 11 | }, 12 | { 13 | "src": "\/images\/icons\/android-icon-48x48.png", 14 | "sizes": "48x48", 15 | "type": "image\/png", 16 | "density": "1.0" 17 | }, 18 | { 19 | "src": "\/images\/icons\/android-icon-72x72.png", 20 | "sizes": "72x72", 21 | "type": "image\/png", 22 | "density": "1.5" 23 | }, 24 | { 25 | "src": "\/images\/icons\/android-icon-96x96.png", 26 | "sizes": "96x96", 27 | "type": "image\/png", 28 | "density": "2.0" 29 | }, 30 | { 31 | "src": "\/images\/icons\/android-icon-144x144.png", 32 | "sizes": "144x144", 33 | "type": "image\/png", 34 | "density": "3.0" 35 | }, 36 | { 37 | "src": "\/images\/icons\/android-icon-192x192.png", 38 | "sizes": "192x192", 39 | "type": "image\/png", 40 | "density": "4.0" 41 | } 42 | ], 43 | "lang": "en-US", 44 | "name": "Vue.js", 45 | "short_name": "Vue", 46 | "start_url": "./menu", 47 | "theme_color": "#4fc08d" 48 | } 49 | --------------------------------------------------------------------------------