foundations and home

This commit is contained in:
José Conde 2023-06-11 14:34:05 +02:00
parent 8069c4a5be
commit 8b1cafca1c
48 changed files with 1251 additions and 117 deletions

1
.gitignore vendored
View File

@ -22,3 +22,4 @@ dist-ssr
*.njsproj *.njsproj
*.sln *.sln
*.sw? *.sw?
.history

View File

@ -1,13 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<meta charset="UTF-8" /> <head>
<link rel="icon" type="image/svg+xml" href="/vite.svg" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="icon" type="image/png" href="/images/logo-kreis_ico.png" />
<title>Vite + Vue</title> <link rel="preconnect" href="https://fonts.googleapis.com">
</head> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<body> <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
<div id="app"></div> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script type="module" src="/src/main.js"></script> <title>Tayrona Foods</title>
</body> </head>
</html>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

525
package-lock.json generated
View File

@ -8,10 +8,14 @@
"name": "tayronafoods-web", "name": "tayronafoods-web",
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"vue": "^3.2.47" "vue": "^3.2.47",
"vue-i18n": "^9.2.2",
"vue-mobile-detection": "^2.0.1",
"vue-router": "^4.2.2"
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^4.1.0", "@vitejs/plugin-vue": "^4.1.0",
"sass": "^1.63.3",
"vite": "^4.3.9" "vite": "^4.3.9"
} }
}, },
@ -378,6 +382,63 @@
"node": ">=12" "node": ">=12"
} }
}, },
"node_modules/@intlify/core-base": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz",
"integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==",
"dependencies": {
"@intlify/devtools-if": "9.2.2",
"@intlify/message-compiler": "9.2.2",
"@intlify/shared": "9.2.2",
"@intlify/vue-devtools": "9.2.2"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@intlify/devtools-if": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz",
"integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==",
"dependencies": {
"@intlify/shared": "9.2.2"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@intlify/message-compiler": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz",
"integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==",
"dependencies": {
"@intlify/shared": "9.2.2",
"source-map": "0.6.1"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@intlify/shared": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz",
"integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==",
"engines": {
"node": ">= 14"
}
},
"node_modules/@intlify/vue-devtools": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz",
"integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==",
"dependencies": {
"@intlify/core-base": "9.2.2",
"@intlify/shared": "9.2.2"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@jridgewell/sourcemap-codec": { "node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15", "version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
@ -442,6 +503,11 @@
"@vue/shared": "3.3.4" "@vue/shared": "3.3.4"
} }
}, },
"node_modules/@vue/devtools-api": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
},
"node_modules/@vue/reactivity": { "node_modules/@vue/reactivity": {
"version": "3.3.4", "version": "3.3.4",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
@ -498,6 +564,67 @@
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
}, },
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"dependencies": {
"fill-range": "^7.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
],
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
"glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.6.0"
},
"engines": {
"node": ">= 8.10.0"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
}
},
"node_modules/csstype": { "node_modules/csstype": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
@ -545,6 +672,18 @@
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
}, },
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/fsevents": { "node_modules/fsevents": {
"version": "2.3.2", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@ -559,6 +698,66 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0" "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
} }
}, },
"node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/immutable": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz",
"integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==",
"dev": true
},
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/magic-string": { "node_modules/magic-string": {
"version": "0.30.0", "version": "0.30.0",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
@ -587,11 +786,32 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
} }
}, },
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/picocolors": { "node_modules/picocolors": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
}, },
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"engines": {
"node": ">=8.6"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.4.24", "version": "8.4.24",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz",
@ -619,6 +839,18 @@
"node": "^10 || ^12 || >=14" "node": "^10 || ^12 || >=14"
} }
}, },
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"dependencies": {
"picomatch": "^2.2.1"
},
"engines": {
"node": ">=8.10.0"
}
},
"node_modules/rollup": { "node_modules/rollup": {
"version": "3.24.1", "version": "3.24.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.24.1.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.24.1.tgz",
@ -635,6 +867,31 @@
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
"node_modules/sass": {
"version": "1.63.3",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.63.3.tgz",
"integrity": "sha512-ySdXN+DVpfwq49jG1+hmtDslYqpS7SkOR5GpF6o2bmb1RL/xS+wvPmegMvMywyfsmAV6p7TgwXYGrCZIFFbAHg==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",
"source-map-js": ">=0.6.2 <2.0.0"
},
"bin": {
"sass": "sass.js"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": { "node_modules/source-map-js": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
@ -643,6 +900,18 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
"engines": {
"node": ">=8.0"
}
},
"node_modules/vite": { "node_modules/vite": {
"version": "4.3.9", "version": "4.3.9",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz",
@ -702,6 +971,45 @@
"@vue/server-renderer": "3.3.4", "@vue/server-renderer": "3.3.4",
"@vue/shared": "3.3.4" "@vue/shared": "3.3.4"
} }
},
"node_modules/vue-i18n": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz",
"integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==",
"dependencies": {
"@intlify/core-base": "9.2.2",
"@intlify/shared": "9.2.2",
"@intlify/vue-devtools": "9.2.2",
"@vue/devtools-api": "^6.2.1"
},
"engines": {
"node": ">= 14"
},
"peerDependencies": {
"vue": "^3.0.0"
}
},
"node_modules/vue-mobile-detection": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/vue-mobile-detection/-/vue-mobile-detection-2.0.1.tgz",
"integrity": "sha512-ziB0Rp8Snp08+p7E+WCRzeYYYp0ddPaqHlFxWN0kpLAddB5D/PRwgIv18P08hkhwNFRgBQ71T19jNIbttR7P0g==",
"dependencies": {
"vue": "^3.2.20"
}
},
"node_modules/vue-router": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz",
"integrity": "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==",
"dependencies": {
"@vue/devtools-api": "^6.5.0"
},
"funding": {
"url": "https://github.com/sponsors/posva"
},
"peerDependencies": {
"vue": "^3.2.0"
}
} }
}, },
"dependencies": { "dependencies": {
@ -864,6 +1172,48 @@
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"@intlify/core-base": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz",
"integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==",
"requires": {
"@intlify/devtools-if": "9.2.2",
"@intlify/message-compiler": "9.2.2",
"@intlify/shared": "9.2.2",
"@intlify/vue-devtools": "9.2.2"
}
},
"@intlify/devtools-if": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz",
"integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==",
"requires": {
"@intlify/shared": "9.2.2"
}
},
"@intlify/message-compiler": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz",
"integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==",
"requires": {
"@intlify/shared": "9.2.2",
"source-map": "0.6.1"
}
},
"@intlify/shared": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz",
"integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q=="
},
"@intlify/vue-devtools": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz",
"integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==",
"requires": {
"@intlify/core-base": "9.2.2",
"@intlify/shared": "9.2.2"
}
},
"@jridgewell/sourcemap-codec": { "@jridgewell/sourcemap-codec": {
"version": "1.4.15", "version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
@ -922,6 +1272,11 @@
"@vue/shared": "3.3.4" "@vue/shared": "3.3.4"
} }
}, },
"@vue/devtools-api": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
},
"@vue/reactivity": { "@vue/reactivity": {
"version": "3.3.4", "version": "3.3.4",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
@ -975,6 +1330,47 @@
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
}, },
"anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
}
},
"binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
"fill-range": "^7.0.1"
}
},
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
"fsevents": "~2.3.2",
"glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.6.0"
}
},
"csstype": { "csstype": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
@ -1015,6 +1411,15 @@
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
}, },
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
},
"fsevents": { "fsevents": {
"version": "2.3.2", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@ -1022,6 +1427,51 @@
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
}
},
"immutable": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz",
"integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==",
"dev": true
},
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"requires": {
"binary-extensions": "^2.0.0"
}
},
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true
},
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
"magic-string": { "magic-string": {
"version": "0.30.0", "version": "0.30.0",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
@ -1035,11 +1485,23 @@
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
}, },
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
"picocolors": { "picocolors": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
}, },
"picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true
},
"postcss": { "postcss": {
"version": "8.4.24", "version": "8.4.24",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz",
@ -1050,6 +1512,15 @@
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
} }
}, },
"readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"requires": {
"picomatch": "^2.2.1"
}
},
"rollup": { "rollup": {
"version": "3.24.1", "version": "3.24.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.24.1.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.24.1.tgz",
@ -1059,11 +1530,36 @@
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
"sass": {
"version": "1.63.3",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.63.3.tgz",
"integrity": "sha512-ySdXN+DVpfwq49jG1+hmtDslYqpS7SkOR5GpF6o2bmb1RL/xS+wvPmegMvMywyfsmAV6p7TgwXYGrCZIFFbAHg==",
"dev": true,
"requires": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",
"source-map-js": ">=0.6.2 <2.0.0"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"source-map-js": { "source-map-js": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
}, },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
"is-number": "^7.0.0"
}
},
"vite": { "vite": {
"version": "4.3.9", "version": "4.3.9",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz",
@ -1087,6 +1583,33 @@
"@vue/server-renderer": "3.3.4", "@vue/server-renderer": "3.3.4",
"@vue/shared": "3.3.4" "@vue/shared": "3.3.4"
} }
},
"vue-i18n": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz",
"integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==",
"requires": {
"@intlify/core-base": "9.2.2",
"@intlify/shared": "9.2.2",
"@intlify/vue-devtools": "9.2.2",
"@vue/devtools-api": "^6.2.1"
}
},
"vue-mobile-detection": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/vue-mobile-detection/-/vue-mobile-detection-2.0.1.tgz",
"integrity": "sha512-ziB0Rp8Snp08+p7E+WCRzeYYYp0ddPaqHlFxWN0kpLAddB5D/PRwgIv18P08hkhwNFRgBQ71T19jNIbttR7P0g==",
"requires": {
"vue": "^3.2.20"
}
},
"vue-router": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz",
"integrity": "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==",
"requires": {
"@vue/devtools-api": "^6.5.0"
}
} }
} }
} }

View File

@ -9,10 +9,14 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
"vue": "^3.2.47" "vue": "^3.2.47",
"vue-i18n": "^9.2.2",
"vue-mobile-detection": "^2.0.1",
"vue-router": "^4.2.2"
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^4.1.0", "@vitejs/plugin-vue": "^4.1.0",
"sass": "^1.63.3",
"vite": "^4.3.9" "vite": "^4.3.9"
} }
} }

View File

@ -1,30 +1,10 @@
<script setup> <script setup>
import HelloWorld from './components/HelloWorld.vue' import Footer from './components/Footer.vue';
</script> </script>
<template> <template>
<div> <div class="main-container">
<a href="https://vitejs.dev" target="_blank"> <RouterView />
<img src="/vite.svg" class="logo" alt="Vite logo" /> <Footer></Footer>
</a>
<a href="https://vuejs.org/" target="_blank">
<img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
</a>
</div> </div>
<HelloWorld msg="Vite + Vue" />
</template> </template>
<style scoped>
.logo {
height: 6em;
padding: 1.5em;
will-change: filter;
transition: filter 300ms;
}
.logo:hover {
filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
src/assets/images/bg_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 918 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,4 @@
<svg width="20" height="17" viewBox="0 0 20 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1 3.5C1 2.96957 1.21071 2.46086 1.58579 2.08579C1.96086 1.71071 2.46957 1.5 3 1.5H17C17.5304 1.5 18.0391 1.71071 18.4142 2.08579C18.7893 2.46086 19 2.96957 19 3.5V13.5C19 14.0304 18.7893 14.5391 18.4142 14.9142C18.0391 15.2893 17.5304 15.5 17 15.5H3C2.46957 15.5 1.96086 15.2893 1.58579 14.9142C1.21071 14.5391 1 14.0304 1 13.5V3.5Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1 3.5L10 9.5L19 3.5" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 640 B

View File

@ -0,0 +1,3 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 2.22803C6.477 2.22803 2 6.74143 2 12.3093C2 17.3409 5.657 21.5115 10.438 22.2686V15.2228H7.898V12.3093H10.438V10.0884C10.438 7.56204 11.93 6.16679 14.215 6.16679C15.309 6.16679 16.453 6.36338 16.453 6.36338V8.84338H15.193C13.95 8.84338 13.563 9.62064 13.563 10.4181V12.3093H16.336L15.893 15.2228H13.563V22.2686C18.343 21.5125 22 17.3399 22 12.3093C22 6.74143 17.523 2.22803 12 2.22803Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 KiB

View File

@ -0,0 +1,3 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 2.22803C14.717 2.22803 15.056 2.23811 16.122 2.28852C17.187 2.33892 17.912 2.50728 18.55 2.7573C19.21 3.01336 19.766 3.36016 20.322 3.91967C20.8305 4.42363 21.224 5.03324 21.475 5.70608C21.722 6.34825 21.89 7.08016 21.94 8.15382C21.987 9.22848 22 9.57024 22 12.3093C22 15.0484 21.99 15.3902 21.94 16.4648C21.89 17.5385 21.722 18.2694 21.475 18.9126C21.2247 19.5858 20.8311 20.1955 20.322 20.699C19.822 21.2114 19.2173 21.6081 18.55 21.8614C17.913 22.1104 17.187 22.2797 16.122 22.3301C15.056 22.3775 14.717 22.3906 12 22.3906C9.283 22.3906 8.944 22.3805 7.878 22.3301C6.813 22.2797 6.088 22.1104 5.45 21.8614C4.78233 21.6088 4.17753 21.2121 3.678 20.699C3.16941 20.1951 2.77593 19.5855 2.525 18.9126C2.277 18.2704 2.11 17.5385 2.06 16.4648C2.013 15.3902 2 15.0484 2 12.3093C2 9.57024 2.01 9.22848 2.06 8.15382C2.11 7.07915 2.277 6.34926 2.525 5.70608C2.77524 5.03283 3.1688 4.42305 3.678 3.91967C4.17767 3.40676 4.78243 3.01006 5.45 2.7573C6.088 2.50728 6.812 2.33892 7.878 2.28852C8.944 2.24113 9.283 2.22803 12 2.22803ZM12 7.26868C10.6739 7.26868 9.40215 7.79974 8.46447 8.74505C7.52678 9.69036 7 10.9725 7 12.3093C7 13.6462 7.52678 14.9283 8.46447 15.8736C9.40215 16.8189 10.6739 17.35 12 17.35C13.3261 17.35 14.5979 16.8189 15.5355 15.8736C16.4732 14.9283 17 13.6462 17 12.3093C17 10.9725 16.4732 9.69036 15.5355 8.74505C14.5979 7.79974 13.3261 7.26868 12 7.26868ZM18.5 7.01665C18.5 6.68243 18.3683 6.3619 18.1339 6.12558C17.8995 5.88925 17.5815 5.75648 17.25 5.75648C16.9185 5.75648 16.6005 5.88925 16.3661 6.12558C16.1317 6.3619 16 6.68243 16 7.01665C16 7.35086 16.1317 7.67139 16.3661 7.90771C16.6005 8.14404 16.9185 8.27681 17.25 8.27681C17.5815 8.27681 17.8995 8.14404 18.1339 7.90771C18.3683 7.67139 18.5 7.35086 18.5 7.01665ZM12 9.28494C12.7956 9.28494 13.5587 9.60358 14.1213 10.1708C14.6839 10.7379 15 11.5072 15 12.3093C15 13.1114 14.6839 13.8807 14.1213 14.4479C13.5587 15.0151 12.7956 15.3337 12 15.3337C11.2044 15.3337 10.4413 15.0151 9.87868 14.4479C9.31607 13.8807 9 13.1114 9 12.3093C9 11.5072 9.31607 10.7379 9.87868 10.1708C10.4413 9.60358 11.2044 9.28494 12 9.28494Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@ -0,0 +1,3 @@
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.4 20.6913C11.3173 20.6859 7.40331 19.0485 4.5164 16.1382C1.62949 13.2278 0.00529192 9.28198 0 5.16608C0 3.93616 0.484642 2.75662 1.34731 1.88694C2.20998 1.01726 3.38 0.52868 4.6 0.52868C4.85834 0.526696 5.11625 0.550333 5.37 0.599249C5.61531 0.635844 5.85647 0.696624 6.09 0.780712C6.25425 0.83881 6.40061 0.939123 6.51461 1.07173C6.62861 1.20434 6.7063 1.36465 6.74 1.53681L8.11 7.58559C8.14693 7.74978 8.14248 7.92067 8.09706 8.08268C8.05165 8.24469 7.96671 8.39266 7.85 8.51307C7.72 8.65421 7.71 8.66429 6.48 9.30949C7.46499 11.4879 9.1932 13.2373 11.35 14.2392C12 12.9892 12.01 12.9791 12.15 12.848C12.2694 12.7304 12.4162 12.6447 12.5769 12.599C12.7376 12.5532 12.9071 12.5487 13.07 12.5859L19.07 13.9671C19.2353 14.0057 19.3881 14.0862 19.5141 14.2008C19.64 14.3154 19.735 14.4605 19.79 14.6223C19.8744 14.8616 19.938 15.1079 19.98 15.3583C20.0202 15.6116 20.0403 15.8679 20.04 16.1245C20.0216 17.3491 19.5233 18.5167 18.654 19.3723C17.7847 20.2279 16.6149 20.7021 15.4 20.6913ZM4.6 2.54494C3.91125 2.5476 3.25146 2.8246 2.76443 3.31559C2.27741 3.80657 2.00263 4.47173 2 5.16608C2.00265 8.74805 3.41528 12.1826 5.92769 14.7154C8.44011 17.2482 11.8469 18.6724 15.4 18.675C16.0888 18.6724 16.7485 18.3954 17.2356 17.9044C17.7226 17.4134 17.9974 16.7482 18 16.0539V15.7212L13.36 14.6425L13.07 15.197C12.62 16.074 12.29 16.7092 11.45 16.3664C9.79288 15.7684 8.2887 14.8059 7.04673 13.5486C5.80477 12.2913 4.85622 10.7709 4.27 9.09778C3.91 8.31144 4.59 7.94852 5.45 7.49486L6 7.22266L4.93 2.54494H4.6Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 KiB

View File

@ -0,0 +1,3 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22.1621 5.91338C21.3986 6.25382 20.589 6.4774 19.7601 6.57673C20.6338 6.04991 21.2878 5.22081 21.6001 4.24391C20.7801 4.73588 19.8811 5.08066 18.9441 5.26717C18.3147 4.58827 17.4804 4.13802 16.571 3.98642C15.6616 3.83482 14.728 3.99036 13.9153 4.42886C13.1026 4.86736 12.4564 5.56425 12.0772 6.41118C11.6979 7.25812 11.6068 8.20766 11.8181 9.11217C10.1552 9.02815 8.52838 8.59251 7.04334 7.83353C5.55829 7.07455 4.24818 6.0092 3.19805 4.70665C2.82634 5.35029 2.63101 6.08196 2.63205 6.82674C2.63205 8.28853 3.37005 9.57995 4.49205 10.336C3.82806 10.315 3.17869 10.1342 2.59805 9.80879V9.86121C2.59825 10.8348 2.93242 11.7783 3.5439 12.5318C4.15538 13.2853 5.00653 13.8025 5.95305 13.9956C5.33667 14.164 4.69036 14.1888 4.06305 14.0681C4.32992 14.9061 4.85006 15.639 5.55064 16.1642C6.25123 16.6893 7.09718 16.9804 7.97005 16.9968C7.10253 17.6836 6.10923 18.1914 5.04693 18.491C3.98464 18.7906 2.87418 18.8762 1.77905 18.7428C3.69075 19.9823 5.91615 20.6403 8.18905 20.6381C15.8821 20.6381 20.0891 14.2133 20.0891 8.64138C20.0891 8.45991 20.0841 8.27643 20.0761 8.09699C20.8949 7.50034 21.6017 6.76123 22.1631 5.91439L22.1621 5.91338Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,3 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21.543 6.76221C22 8.55869 22 12.3089 22 12.3089C22 12.3089 22 16.0592 21.543 17.8557C21.289 18.8487 20.546 19.63 19.605 19.8941C17.896 20.374 12 20.374 12 20.374C12 20.374 6.107 20.374 4.395 19.8941C3.45 19.6259 2.708 18.8457 2.457 17.8557C2 16.0592 2 12.3089 2 12.3089C2 12.3089 2 8.55869 2.457 6.76221C2.711 5.7692 3.454 4.9879 4.395 4.72377C6.107 4.2439 12 4.2439 12 4.2439C12 4.2439 17.896 4.2439 19.605 4.72377C20.55 4.99193 21.292 5.77222 21.543 6.76221ZM10 15.8374L16 12.3089L10 8.78048V15.8374Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 632 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>

Before

Width:  |  Height:  |  Size: 496 B

View File

@ -0,0 +1,37 @@
<template>
<section class="certifications">
<header class="header">
<h2 class="title">{{ $t('certifications.title') }}</h2>
</header>
<div class="content">
</div>
</section>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
.header {
background-color: #000;
color: #fff;
text-align: center;
padding: 72px 0 76px;
}
h2.title {
font-size: 54px;
font-weight: 400;
line-height: 63.28px;
}
.content {
height: 600px;
background-image: url('@images/bg_1.png');
background-repeat: no-repeat;
background-size: contain;
}
</style>

View File

@ -0,0 +1,36 @@
<template>
<section class="coffeefarmers">
<h3 class="header">{{ $t('coffeefarmers.title') }}</h3>
<div class="separator"></div>
</section>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
.coffeefarmers {
height: 590px;
background-image: url('@images/grains.png');
background-repeat: no-repeat;
background-size: contain;
color: #fff;
}
h3.header {
font-weight: 400;
font-size: 48px;
line-height: 58px;
padding: 175px 230px 0;
text-align: center;
}
.separator {
border-top: 2px solid #fff;
width: 700px;
margin: 50px auto 0;
}
</style>

View File

@ -0,0 +1,44 @@
<script setup>
import DifferentBox from './DifferentBox.vue';
</script>
<template>
<section class="different">
<h2>{{ $t('different.header') }}</h2>
<h3>{{ $t('different.subheader') }}</h3>
<div class="boxes">
<DifferentBox image="coffee-beans1.png" :title="$t('different.beans.title')" :description="$t('different.beans.description')" />
<DifferentBox image="badge1.png" :title="$t('different.quality.title')" :description="$t('different.quality.description')" />
<DifferentBox image="coffee-cup1.png" :title="$t('different.extraordinary.title')" :description="$t('different.extraordinary.description')" />
<DifferentBox image="best-price1.png" :title="$t('different.affordable.title')" :description="$t('different.affordable.description')" />
</div>
</section>
</template>
<style lang="scss" scoped>
.different {
color: #fff;
background-color: #000;
padding: 72px 64px;
}
h2 {
padding: 0 150px;
font-size: 52px;
text-align: center;
}
h3 {
margin-top: 24px;
padding: 0 150px;
font-size: 20px;
line-height: 34px;
text-align: center;
font-weight: 400;
margin-bottom: 50px;
}
.boxes {
display: flex;
justify-content: space-between;
}
</style>

View File

@ -0,0 +1,50 @@
<script>
export default {
props: {
image: String,
title: String,
description: String
},
methods: {
getImage(image) {
return new URL(`/src/assets/images/${image}`, import.meta.url).href;
},
}
}
</script>
<template>
<div class="different-box">
<img :src="getImage(image)" class="image" />
<h3 class="title">{{ title }}</h3>
<p class="description">{{ description }}</p>
</div>
</template>
<style lang="scss" scoped>
.different-box {
width: 280px;
height: 284px;
background: #E2CAAA;
text-align: center;
padding: 36px 24px 0;
}
.image {
width: 88px;
height: 88px;
}
.title {
margin-top: 24px;
color: #603809;
font-weight: 700;
font-size: 28px;
}
.description {
margin-top: 12px;
font-style: 400;
font-weight: 400;
font-size: 20px;
line-height: 24px;
color: #1E1E1E;
}
</style>

136
src/components/Footer.vue Normal file
View File

@ -0,0 +1,136 @@
<script setup></script>
<template>
<footer>
<img class="logo" src="@images/logo-kreis_3.png">
<div class="contact-info">
<h5>{{ $t('footer.contact')}}</h5>
<p>Si está interesado o tiene alguna pregunta, ¡contáctenos!</p>
<p class="emails">
<a href="mailto:info@Tayronafoods.com" class="email"><i class="email-icon"></i>info@Tayronafoods.com</a>
<a href="mailto:info@Tayronafoods.com" class="email"><i class="email-icon"></i>info@Tayronafoods.com</a>
<a href="mailto:info@Tayronafoods.com" class="email"><i class="email-icon"></i>info@Tayronafoods.com</a>
</p>
<p class="phone"><i class="phone-icon"></i>+49(0)176 321 368 59</p>
<p class="phone"><i class="phone-icon"></i>+49(0)152 549 389 62</p>
<p class="rss">
<a href="#"><i class="facebook-icon"></i></a>
<a href="#"><i class="instagram-icon"></i></a>
<a href="#"><i class="youtube-icon"></i></a>
<a href="#"><i class="twitter-icon"></i></a>
</p>
<p class="links">
<a href="#">Impressum</a>
<a href="#">Datenschutz</a>
<a href="#">AGB</a>
</p>
</div>
</footer>
</template>
<style lang="scss" scoped>
footer {
position: relative;
color: #fff;
height: 492px;
background-color: #442808;
background-image: url('@images/footer_coffee.png');
background-blend-mode: overlay;
}
h5 {
font-weight: 500;
padding-top: 72px;
font-size: 20px;
margin-bottom: 24px;
}
p {
margin-bottom: 12px;
&.links {
margin-top: 58px;
a {
margin-right: 200px;
&:last-child {
margin-right: 0;
}
}
}
}
a {
text-decoration: none;
color: #fff;
}
@mixin icon($url) {
display: inline-block;
background-image: url($url);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
width: 18px;
height: 18px;
}
.logo {
position: absolute;
top: 29px;
left: 92px;
width: 168px;
height: 161px;
}
.contact-info {
text-align: center;;
display: flex;
flex-direction: column;
font-size: 20px;
font-weight: 500;
.emails {
padding: 0;
.email {
margin-right: 16px;
&:last-child {
margin-right: 0;
}
&-icon {
@include icon('@images/email.svg');
margin-right: 5px;
}
}
}
.phone-icon {
@include icon('@images/phone.svg');
margin-right: 5px;
}
.rss a {
margin-right: 24px;
&:last-child {
margin-right: 0;
}
}
.facebook-icon {
@include icon('@images/facebook.svg');
}
.youtube-icon {
@include icon('@images/youtube.svg');
}
.instagram-icon {
@include icon('@images/instagram.svg');
}
.twitter-icon {
@include icon('@images/twitter.svg');
}
}
</style>

94
src/components/Menu.vue Normal file
View File

@ -0,0 +1,94 @@
<script>
export default {
props: {
type: String,
title: String,
}
}
</script>
<template>
<section class="menu" :class="type">
<div class="overlay">
<nav>
<img class="logo" src="@images/logo-kreis_3.png" />
<div class="links">
<router-link class="link" to="/">{{ $t('menu.home')}}</router-link>
<router-link class="link" to="/about">{{ $t('menu.about') }}</router-link>
<router-link class="link" to="/products">{{ $t('menu.products') }}</router-link>
<!-- <router-link class="link" to="/social">{{ $t('menu.social') }}</router-link>
<router-link class="link" to="/contact">{{ $t('menu.contact') }}</router-link> -->
</div>
</nav>
<h1 class="title" v-if="title">{{ title }}</h1>
</div>
</section>
</template>
<style lang="scss" scoped>
.menu {
height: 574px;
background-repeat: no-repeat;
background-size: contain;
.overlay {
width: 100%;
height: 100%;
background: linear-gradient(89.82deg, rgba(30, 30, 30, 0.72) -6.88%, rgba(0, 0, 0, 0.18) 87.45%);
}
.title {
color: #fff;
font-weight: 500;
font-size: 65px;
line-height: 70px;
text-align: right;
padding: 88px 93px 0;
}
nav {
padding: 24px 93px 0;
display: grid;
grid-template-columns: auto auto;
.logo {
height: 117px;
width: 118px;;
}
.links {
justify-self: end;
align-self: center;
.link {
margin-right: 54px;
color: #fff;
text-decoration: none;
&.router-link-active {
color: #FECE16;
}
&:hover {
color: #FECE16;
}
&:last-child {
margin-right: 0;
}
}
}
}
&.home {
background-image: url('@images/mountains.png');
}
&.about {
background-image: url('@images/coffee1.jpg');
}
&.products {
background-image: url('@images/products.png');
}
}
</style>

View File

@ -0,0 +1,50 @@
<script>
export default {
props: {
image: String,
title: String,
description: String
},
methods: {
getImage(image) {
return new URL(`/src/assets/images/${image}`, import.meta.url).href;
},
}
}
</script>
<template>
<div class="origin-box">
<img :src="getImage(image)" class="image" />
<h3 class="title">{{ title }}</h3>
<p class="description">{{ description }}</p>
</div>
</template>
<style lang="scss" scoped>
.origin-box {
width: 280px;
height: 364px;
background: #FFF9F1;
border: 1px solid rgba(249, 192, 106, 0.42);
}
.image {
width: 280px;
height: 222px;
}
.title {
margin-top: 12px;
color: #603809;
text-align: center;
font-weight: 700;
font-size: 22px;
}
.description {
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 21px;
color: #1E1E1E;
padding: 8px;
}
</style>

View File

@ -0,0 +1,35 @@
<script setup>
import OriginBoxVue from "./OriginBox.vue";
</script>
<template>
<section class="origins">
<h2>{{ $t('origins.header') }}</h2>
<div class="boxes">
<OriginBoxVue image="coffee_brasil.png" :title="$t('origins.brazil')" :description="$t('origins.brazil_description')" />
<OriginBoxVue image="coffee_colombia.png" :title="$t('origins.colombia')" :description="$t('origins.colombia_description')" />
<OriginBoxVue image="coffee_peru.png" :title="$t('origins.peru')" :description="$t('origins.peru_description')" />
<OriginBoxVue image="coffee_uganda.png" :title="$t('origins.uganda')" :description="$t('origins.uganda_description')" />
</div>
</section>
</template>
<style lang="scss" scoped>
.origins {
color: #fff;
background-color: #000;
padding: 72px 64px;
}
h2 {
padding: 0 150px;
font-size: 52px;
text-align: center;
}
.boxes {
margin-top: 72px;
display: flex;
justify-content: space-between;
}
</style>

9
src/i18n/de.js Normal file
View File

@ -0,0 +1,9 @@
export default {
footer: {
contact: 'Kontakt',
message: 'Bei Interesse oder Fragen kontaktieren Sie uns bitte!',
impressum: 'Impressum',
dataprotection: 'Datenschutz',
agb: 'AGB'
}
}

9
src/i18n/en.js Normal file
View File

@ -0,0 +1,9 @@
export default {
footer: {
contact: 'Contact',
message: 'If you are interested or have any questions, please contact us!',
impressum: 'Impressum',
dataprotection: 'Data protection',
agb: 'AGB'
}
}

56
src/i18n/es.js Normal file
View File

@ -0,0 +1,56 @@
export default {
footer: {
contact: 'Contacto',
message: 'Si está interesado o tiene alguna pregunta, ¡contáctenos!',
impressum: 'Impressum',
dataprotection: 'Protección de Datos',
agb: 'AGB'
},
menu: {
home: 'Inicio',
about: 'Quiénes Somos',
products: 'Producto',
social: 'Proyecto Social',
contact: 'Contacto'
},
about: {
title: 'Quiénes Somos',
},
origins: {
header: 'Una mezcla única de los mejores granos de café de las montañas de Latinoamerica y Uganda.',
brazil: 'Brasil',
brazil_description: 'Coffeee 100%',
peru: 'Perú',
peru_description: 'Coffeee 100%',
colombia: 'Colombia',
colombia_description: 'Coffeee 100%',
uganda: 'Uganda',
uganda_description: 'Coffeee 100%',
},
different: {
header: '¿Por qué somos diferentes?',
subheader: '¡No solo hacemos tu café, hacemos tu día!',
beans: {
title: 'Granos Supremos',
description: 'Granos proporcionan gran sabor',
},
quality: {
title: 'Alta Calidad',
description: 'Estandares de máxima calidad',
},
extraordinary: {
title: 'Extraordinario',
description: 'Sabor inigualable',
},
affordable: {
title: 'Precio asequible',
description: 'Los mejores precios del mercado',
},
},
coffeefarmers: {
title: 'Por los caficultores apasionados, los amantes del buen tueste y los que nunca se rinden.',
},
certifications: {
title: 'Nuestras certificaciones'
},
}

16
src/i18n/i18n.js Normal file
View File

@ -0,0 +1,16 @@
import { createI18n } from "vue-i18n";
import es from "./es";
import en from "./en";
import de from "./de";
const i18n = createI18n({
locale: 'es',
fallbackLocale: 'en',
messages: {
es,
en,
de,
}
});
export default i18n;

View File

@ -1,5 +1,15 @@
import { createApp } from 'vue' import { createApp } from 'vue'
import router from './router/router';
import i18n from './i18n/i18n';
import VueMobileDetection from 'vue-mobile-detection';
import './style.css' import './style.css'
import App from './App.vue' import App from './App.vue'
createApp(App).mount('#app') const app = createApp(App);
app.use(router);
app.use(VueMobileDetection);
app.use(i18n);
app.mount('#app');

24
src/router/router.js Normal file
View File

@ -0,0 +1,24 @@
import { createRouter, createWebHashHistory } from "vue-router";
import HomeView from '../views/home/Home.vue';
import AboutView from '../views/about/About.vue';
import ProductsView from '../views/products/Products.vue';
const router = createRouter({
history: createWebHashHistory(),
routes: [{
path: '/',
name: 'home',
component: HomeView,
}, {
path: '/about',
name: 'about',
component: AboutView,
}, {
path: '/products',
name: 'products',
component: ProductsView,
}]
});
export default router;

View File

@ -1,89 +1,46 @@
:root { html {
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; box-sizing: border-box;
line-height: 1.5; font-size: 16px;
font-weight: 400;
color-scheme: light dark;
color: rgba(255, 255, 255, 0.87);
background-color: #242424;
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-text-size-adjust: 100%;
} }
a { *,
font-weight: 500; *:before,
color: #646cff; *:after {
text-decoration: inherit; box-sizing: inherit;
}
a:hover {
color: #535bf2;
} }
a { body,
font-weight: 500; h1,
color: #646cff; h2,
text-decoration: inherit; h3,
h4,
h5,
h6,
p,
ol,
ul {
margin: 0;
padding: 0;
font-weight: normal;
} }
a:hover {
color: #535bf2; ol,
ul {
list-style: none;
}
img {
max-width: 100%;
height: auto;
} }
body { body {
margin: 0; margin: 0;
display: flex; padding: 0;
place-items: center; font-family: 'Roboto', sans-serif;
min-width: 320px;
min-height: 100vh;
} }
h1 { .main-container {
font-size: 3.2em; width: 1366px;
line-height: 1.1;
}
button {
border-radius: 8px;
border: 1px solid transparent;
padding: 0.6em 1.2em;
font-size: 1em;
font-weight: 500;
font-family: inherit;
background-color: #1a1a1a;
cursor: pointer;
transition: border-color 0.25s;
}
button:hover {
border-color: #646cff;
}
button:focus,
button:focus-visible {
outline: 4px auto -webkit-focus-ring-color;
}
.card {
padding: 2em;
}
#app {
max-width: 1280px;
margin: 0 auto; margin: 0 auto;
padding: 2rem; }
text-align: center;
}
@media (prefers-color-scheme: light) {
:root {
color: #213547;
background-color: #ffffff;
}
a:hover {
color: #747bff;
}
button {
background-color: #f9f9f9;
}
}

View File

@ -0,0 +1,7 @@
<script setup>
import MenuVue from "../../components/Menu.vue";
</script>
<template>
<MenuVue type="about" :title="$t('about.title')"></MenuVue>
</template>

15
src/views/home/Home.vue Normal file
View File

@ -0,0 +1,15 @@
<script setup>
import MenuVue from "../../components/Menu.vue";
import Origins from "../../components/Origins.vue";
import Different from "../../components/Different.vue";
import CoffeeFarmer from "../../components/CoffeeFarmer.vue";
import Certifications from "../../components/Certifications.vue";
</script>
<template>
<MenuVue type="home" />
<Origins />
<Different />
<CoffeeFarmer />
<Certifications />
</template>

View File

@ -0,0 +1,7 @@
<script setup>
import MenuVue from "../../components/Menu.vue";
</script>
<template>
<MenuVue type="products"></MenuVue>
</template>

View File

@ -1,7 +1,17 @@
import { fileURLToPath, URL } from 'node:url';
import { defineConfig } from 'vite' import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue' import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
plugins: [vue()], plugins: [vue()],
}) resolve: {
alias: {
'@images': fileURLToPath(new URL('./src/assets/images',
import.meta.url)),
'@': fileURLToPath(new URL('./src',
import.meta.url)),
}
}
})