landing page
This commit is contained in:
parent
14b581c748
commit
492c4199bb
13
site/components.d.ts
vendored
Normal file
13
site/components.d.ts
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/* eslint-disable */
|
||||||
|
/* prettier-ignore */
|
||||||
|
// @ts-nocheck
|
||||||
|
// Generated by unplugin-vue-components
|
||||||
|
// Read more: https://github.com/vuejs/core/pull/3399
|
||||||
|
export {}
|
||||||
|
|
||||||
|
declare module 'vue' {
|
||||||
|
export interface GlobalComponents {
|
||||||
|
HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
|
||||||
|
TheLanding: typeof import('./src/components/TheLanding.vue')['default']
|
||||||
|
}
|
||||||
|
}
|
89
site/package-lock.json
generated
89
site/package-lock.json
generated
@ -9,6 +9,7 @@
|
|||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mdi/font": "7.0.96",
|
"@mdi/font": "7.0.96",
|
||||||
|
"@vueuse/core": "^10.7.2",
|
||||||
"roboto-fontface": "*",
|
"roboto-fontface": "*",
|
||||||
"vue": "^3.3.0",
|
"vue": "^3.3.0",
|
||||||
"vuetify": "^3.0.0"
|
"vuetify": "^3.0.0"
|
||||||
@ -661,6 +662,11 @@
|
|||||||
"undici-types": "~5.26.4"
|
"undici-types": "~5.26.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/web-bluetooth": {
|
||||||
|
"version": "0.0.20",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
|
||||||
|
"integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow=="
|
||||||
|
},
|
||||||
"node_modules/@vitejs/plugin-vue": {
|
"node_modules/@vitejs/plugin-vue": {
|
||||||
"version": "4.6.2",
|
"version": "4.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
|
||||||
@ -830,6 +836,89 @@
|
|||||||
"vuetify": "^3.0.0"
|
"vuetify": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@vueuse/core": {
|
||||||
|
"version": "10.7.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz",
|
||||||
|
"integrity": "sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/web-bluetooth": "^0.0.20",
|
||||||
|
"@vueuse/metadata": "10.7.2",
|
||||||
|
"@vueuse/shared": "10.7.2",
|
||||||
|
"vue-demi": ">=0.14.6"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/antfu"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@vueuse/core/node_modules/vue-demi": {
|
||||||
|
"version": "0.14.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||||
|
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"bin": {
|
||||||
|
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||||
|
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/antfu"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@vue/composition-api": "^1.0.0-rc.1",
|
||||||
|
"vue": "^3.0.0-0 || ^2.6.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@vue/composition-api": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@vueuse/metadata": {
|
||||||
|
"version": "10.7.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz",
|
||||||
|
"integrity": "sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/antfu"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@vueuse/shared": {
|
||||||
|
"version": "10.7.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz",
|
||||||
|
"integrity": "sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==",
|
||||||
|
"dependencies": {
|
||||||
|
"vue-demi": ">=0.14.6"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/antfu"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@vueuse/shared/node_modules/vue-demi": {
|
||||||
|
"version": "0.14.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||||
|
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"bin": {
|
||||||
|
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||||
|
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/antfu"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@vue/composition-api": "^1.0.0-rc.1",
|
||||||
|
"vue": "^3.0.0-0 || ^2.6.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@vue/composition-api": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/acorn": {
|
"node_modules/acorn": {
|
||||||
"version": "8.11.3",
|
"version": "8.11.3",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mdi/font": "7.0.96",
|
"@mdi/font": "7.0.96",
|
||||||
|
"@vueuse/core": "^10.7.2",
|
||||||
"roboto-fontface": "*",
|
"roboto-fontface": "*",
|
||||||
"vue": "^3.3.0",
|
"vue": "^3.3.0",
|
||||||
"vuetify": "^3.0.0"
|
"vuetify": "^3.0.0"
|
||||||
|
@ -1,11 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-app>
|
<v-app :theme="theme">
|
||||||
<v-main>
|
<v-main>
|
||||||
<HelloWorld />
|
<TheLanding />
|
||||||
</v-main>
|
</v-main>
|
||||||
</v-app>
|
</v-app>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
//
|
import {
|
||||||
|
useDark,
|
||||||
|
useToggle,
|
||||||
|
} from '@vueuse/core';
|
||||||
|
import { computed } from 'vue';
|
||||||
|
|
||||||
|
const dark = useDark();
|
||||||
|
const toggleDark = useToggle(dark);
|
||||||
|
|
||||||
|
const theme = computed(() => dark.value ? 'dark' : 'light')
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
<template>
|
|
||||||
<v-container class="fill-height">
|
|
||||||
<v-responsive class="align-center text-center fill-height">
|
|
||||||
<v-img height="300" src="@/assets/logo.svg" />
|
|
||||||
|
|
||||||
<div class="text-body-2 font-weight-light mb-n1">Welcome to</div>
|
|
||||||
|
|
||||||
<h1 class="text-h2 font-weight-bold">Vuetify</h1>
|
|
||||||
|
|
||||||
<div class="py-14" />
|
|
||||||
|
|
||||||
<v-row class="d-flex align-center justify-center">
|
|
||||||
<v-col cols="auto">
|
|
||||||
<v-btn
|
|
||||||
href="https://vuetifyjs.com/components/all/"
|
|
||||||
min-width="164"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
target="_blank"
|
|
||||||
variant="text"
|
|
||||||
>
|
|
||||||
<v-icon
|
|
||||||
icon="mdi-view-dashboard"
|
|
||||||
size="large"
|
|
||||||
start
|
|
||||||
/>
|
|
||||||
|
|
||||||
Components
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
|
|
||||||
<v-col cols="auto">
|
|
||||||
<v-btn
|
|
||||||
color="primary"
|
|
||||||
href="https://vuetifyjs.com/introduction/why-vuetify/#feature-guides"
|
|
||||||
min-width="228"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
size="x-large"
|
|
||||||
target="_blank"
|
|
||||||
variant="flat"
|
|
||||||
>
|
|
||||||
<v-icon
|
|
||||||
icon="mdi-speedometer"
|
|
||||||
size="large"
|
|
||||||
start
|
|
||||||
/>
|
|
||||||
|
|
||||||
Get Started
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
|
|
||||||
<v-col cols="auto">
|
|
||||||
<v-btn
|
|
||||||
href="https://community.vuetifyjs.com/"
|
|
||||||
min-width="164"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
target="_blank"
|
|
||||||
variant="text"
|
|
||||||
>
|
|
||||||
<v-icon
|
|
||||||
icon="mdi-account-group"
|
|
||||||
size="large"
|
|
||||||
start
|
|
||||||
/>
|
|
||||||
|
|
||||||
Community
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
</v-row>
|
|
||||||
</v-responsive>
|
|
||||||
</v-container>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
//
|
|
||||||
</script>
|
|
67
site/src/components/TheLanding.vue
Normal file
67
site/src/components/TheLanding.vue
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<v-row>
|
||||||
|
<v-col>
|
||||||
|
<v-sheet rounded :elevation="5" class="pa-4">
|
||||||
|
This is an experimental PvP reimplementation of <a href="https://mikeklubnika.itch.io/buckshot-roulette" target="_blank">Buckshot Roulette, a computer game by Mike Klubnika</a>.
|
||||||
|
Please play here only if you've bought and played the original.
|
||||||
|
</v-sheet>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-row>
|
||||||
|
<v-col>
|
||||||
|
<v-sheet rounded :elevation="5" class="pa-4">
|
||||||
|
There are no niceties in this implementation:
|
||||||
|
<ul>
|
||||||
|
<li>No user accounts. Functionality is tied to your IP address for now, and things will probably
|
||||||
|
break if there are multiple players on the same local network.</li>
|
||||||
|
<li>No MMR. Matching is done purely on a first-come, first-served basis.</li>
|
||||||
|
<li>No saves. If you disconnect, or the server goes down for any reason, everything is gone.</li>
|
||||||
|
<li>No pretty. Buckshot Roulette is an incredibly stylish and atmospheric game; this version is not.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</v-sheet>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-row>
|
||||||
|
<v-col>
|
||||||
|
<v-sheet rounded :elevation="5" class="pa-4">
|
||||||
|
Similarly, this server is not intended to be robust.
|
||||||
|
It runs on a hand-me-down PC sitting on the floor of my living room, the same computer that runs <a href="https://twitch.tv/robotisbroken" target="_blank">RobotIsBroken</a>.
|
||||||
|
Please don't DoS me. It won't be a challenge, and all it will do is rob people of fun.
|
||||||
|
</v-sheet>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-row>
|
||||||
|
<v-col>
|
||||||
|
<v-sheet rounded :elevation="5" class="pa-4">
|
||||||
|
<v-row>
|
||||||
|
<v-col>
|
||||||
|
In order to provide the functionality of this service, I must collect and process your IP
|
||||||
|
address,
|
||||||
|
which is identifying information.
|
||||||
|
I do not permanently store it, and I do not use it for any other purpose.
|
||||||
|
However, I still feel it is appropriate to explicitly require your consent to use it.
|
||||||
|
Clicking this button saves a cookie on your device which tells the server it's ok to handle your
|
||||||
|
information as necessary to provide the service.
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-row>
|
||||||
|
<v-col width="auto"></v-col>
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-btn color="secondary">TODO(zeph): actually implement this</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-col width="auto"></v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-sheet>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-row>
|
||||||
|
<v-col width="auto"></v-col>
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-btn color="primary">Play</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-col width="auto"></v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
Loading…
Reference in New Issue
Block a user