Skip to content

Commit 75747f4

Browse files
Merge pull request #1198 from blocknative/feature/with-vuejs
Feature/with vuejs
2 parents df692c5 + 39e7fc0 commit 75747f4

25 files changed

+3385
-0
lines changed

examples/with-vuejs/.eslintrc.cjs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/* eslint-env node */
2+
require('@rushstack/eslint-patch/modern-module-resolution')
3+
4+
module.exports = {
5+
root: true,
6+
extends: [
7+
'plugin:vue/vue3-essential',
8+
'eslint:recommended',
9+
'@vue/eslint-config-prettier'
10+
]
11+
}

examples/with-vuejs/.gitignore

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
.DS_Store
12+
dist
13+
dist-ssr
14+
coverage
15+
*.local
16+
17+
/cypress/videos/
18+
/cypress/screenshots/
19+
20+
# Editor directories and files
21+
.vscode/*
22+
!.vscode/extensions.json
23+
.idea
24+
*.suo
25+
*.ntvs*
26+
*.njsproj
27+
*.sln
28+
*.sw?
29+
30+
.yalc
31+
yalc.*

examples/with-vuejs/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# with-vuejs
2+
3+
This template should help get you started developing with Vue 3 in Vite.
4+
5+
## Recommended IDE Setup
6+
7+
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
8+
9+
## Customize configuration
10+
11+
See [Vite Configuration Reference](https://vitejs.dev/config/).
12+
13+
## Project Setup
14+
15+
```sh
16+
npm install
17+
```
18+
19+
### Compile and Hot-Reload for Development
20+
21+
```sh
22+
npm run dev
23+
```
24+
25+
### Compile and Minify for Production
26+
27+
```sh
28+
npm run build
29+
```
30+
31+
### Lint with [ESLint](https://eslint.org/)
32+
33+
```sh
34+
npm run lint
35+
```

examples/with-vuejs/index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" href="/favicon.ico" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>Vite App</title>
8+
</head>
9+
<body>
10+
<div id="app"></div>
11+
<script type="module" src="/src/main.js"></script>
12+
</body>
13+
</html>

examples/with-vuejs/package.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "with-vuejs",
3+
"version": "0.0.0",
4+
"scripts": {
5+
"dev": "vite",
6+
"build": "vite build",
7+
"preview": "vite preview --port 4173",
8+
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore"
9+
},
10+
"dependencies": {
11+
"@web3-onboard/injected-wallets": "^2.0.15",
12+
"@web3-onboard/vue": "file:.yalc/@web3-onboard/vue",
13+
"pinia": "^2.0.16",
14+
"vue": "^3.2.37",
15+
"vue-router": "^4.1.2"
16+
},
17+
"devDependencies": {
18+
"@rushstack/eslint-patch": "^1.1.0",
19+
"@vitejs/plugin-vue": "^3.0.1",
20+
"@vue/eslint-config-prettier": "^7.0.0",
21+
"eslint": "^8.5.0",
22+
"eslint-plugin-vue": "^9.0.0",
23+
"prettier": "^2.5.1",
24+
"vite": "^3.0.1"
25+
}
26+
}
4.19 KB
Binary file not shown.

examples/with-vuejs/src/App.vue

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
<script setup>
2+
import { RouterLink, RouterView } from 'vue-router'
3+
import HelloWorld from './components/HelloWorld.vue'
4+
import { init } from '@web3-onboard/vue'
5+
import injectedModule from '@web3-onboard/injected-wallets'
6+
7+
const injected = injectedModule()
8+
const infuraKey = '<INFURA_KEY>'
9+
const rpcUrl = `https://mainnet.infura.io/v3/${infuraKey}`
10+
11+
init({
12+
wallets: [injected],
13+
chains: [
14+
{
15+
id: '0x1',
16+
token: 'ETH',
17+
label: 'Ethereum Mainnet',
18+
rpcUrl
19+
}
20+
]
21+
})
22+
</script>
23+
24+
<template>
25+
<header>
26+
<img
27+
alt="Vue logo"
28+
class="logo"
29+
src="@/assets/logo.svg"
30+
width="125"
31+
height="125"
32+
/>
33+
34+
<div class="wrapper">
35+
<HelloWorld msg="Web3-Onboard NuxtJs Example!" />
36+
37+
<nav>
38+
<RouterLink to="/">Home</RouterLink>
39+
<RouterLink to="/about">About</RouterLink>
40+
</nav>
41+
</div>
42+
</header>
43+
44+
<RouterView />
45+
</template>
46+
47+
<style scoped>
48+
header {
49+
line-height: 1.5;
50+
max-height: 100vh;
51+
}
52+
53+
.logo {
54+
display: block;
55+
margin: 0 auto 2rem;
56+
}
57+
58+
nav {
59+
width: 100%;
60+
font-size: 12px;
61+
text-align: center;
62+
margin-top: 2rem;
63+
}
64+
65+
nav a.router-link-exact-active {
66+
color: var(--color-text);
67+
}
68+
69+
nav a.router-link-exact-active:hover {
70+
background-color: transparent;
71+
}
72+
73+
nav a {
74+
display: inline-block;
75+
padding: 0 1rem;
76+
border-left: 1px solid var(--color-border);
77+
}
78+
79+
nav a:first-of-type {
80+
border: 0;
81+
}
82+
83+
@media (min-width: 1024px) {
84+
header {
85+
display: flex;
86+
place-items: center;
87+
padding-right: calc(var(--section-gap) / 2);
88+
}
89+
90+
.logo {
91+
margin: 0 2rem 0 0;
92+
}
93+
94+
header .wrapper {
95+
display: flex;
96+
place-items: flex-start;
97+
flex-wrap: wrap;
98+
}
99+
100+
nav {
101+
text-align: left;
102+
margin-left: -1rem;
103+
font-size: 1rem;
104+
105+
padding: 1rem 0;
106+
margin-top: 1rem;
107+
}
108+
}
109+
</style>
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/* color palette from <https://github.com/vuejs/theme> */
2+
:root {
3+
--vt-c-white: #ffffff;
4+
--vt-c-white-soft: #f8f8f8;
5+
--vt-c-white-mute: #f2f2f2;
6+
7+
--vt-c-black: #181818;
8+
--vt-c-black-soft: #222222;
9+
--vt-c-black-mute: #282828;
10+
11+
--vt-c-indigo: #2c3e50;
12+
13+
--vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
14+
--vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
15+
--vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
16+
--vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
17+
18+
--vt-c-text-light-1: var(--vt-c-indigo);
19+
--vt-c-text-light-2: rgba(60, 60, 60, 0.66);
20+
--vt-c-text-dark-1: var(--vt-c-white);
21+
--vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
22+
}
23+
24+
/* semantic color variables for this project */
25+
:root {
26+
--color-background: var(--vt-c-white);
27+
--color-background-soft: var(--vt-c-white-soft);
28+
--color-background-mute: var(--vt-c-white-mute);
29+
30+
--color-border: var(--vt-c-divider-light-2);
31+
--color-border-hover: var(--vt-c-divider-light-1);
32+
33+
--color-heading: var(--vt-c-text-light-1);
34+
--color-text: var(--vt-c-text-light-1);
35+
36+
--section-gap: 160px;
37+
}
38+
39+
@media (prefers-color-scheme: dark) {
40+
:root {
41+
--color-background: var(--vt-c-black);
42+
--color-background-soft: var(--vt-c-black-soft);
43+
--color-background-mute: var(--vt-c-black-mute);
44+
45+
--color-border: var(--vt-c-divider-dark-2);
46+
--color-border-hover: var(--vt-c-divider-dark-1);
47+
48+
--color-heading: var(--vt-c-text-dark-1);
49+
--color-text: var(--vt-c-text-dark-2);
50+
}
51+
}
52+
53+
*,
54+
*::before,
55+
*::after {
56+
box-sizing: border-box;
57+
margin: 0;
58+
position: relative;
59+
font-weight: normal;
60+
}
61+
62+
body {
63+
min-height: 100vh;
64+
color: var(--color-text);
65+
background: var(--color-background);
66+
transition: color 0.5s, background-color 0.5s;
67+
line-height: 1.6;
68+
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
69+
Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
70+
font-size: 15px;
71+
text-rendering: optimizeLegibility;
72+
-webkit-font-smoothing: antialiased;
73+
-moz-osx-font-smoothing: grayscale;
74+
}
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
@import "./base.css";
2+
3+
#app {
4+
max-width: 1280px;
5+
margin: 0 auto;
6+
padding: 2rem;
7+
8+
font-weight: normal;
9+
}
10+
11+
a,
12+
.green {
13+
text-decoration: none;
14+
color: hsla(160, 100%, 37%, 1);
15+
transition: 0.4s;
16+
}
17+
18+
@media (hover: hover) {
19+
a:hover {
20+
background-color: hsla(160, 100%, 37%, 0.2);
21+
}
22+
}
23+
24+
@media (min-width: 1024px) {
25+
body {
26+
display: flex;
27+
place-items: center;
28+
}
29+
30+
#app {
31+
display: grid;
32+
grid-template-columns: 1fr 1fr;
33+
padding: 0 2rem;
34+
}
35+
}

0 commit comments

Comments
 (0)