diff --git a/package.json b/package.json index cdf3e4a..1f67fcb 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "format": "prettier --write src/" }, "dependencies": { - "vue": "^3.3.4" + "vue": "^3.3.4", + "vue-confetti": "^2.3.0" }, "devDependencies": { "@rushstack/eslint-patch": "^1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 68e4491..0404c7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ dependencies: vue: specifier: ^3.3.4 version: 3.3.4 + vue-confetti: + specifier: ^2.3.0 + version: 2.3.0 devDependencies: '@rushstack/eslint-patch': @@ -2201,6 +2204,10 @@ packages: fsevents: 2.3.2 dev: true + /vue-confetti@2.3.0: + resolution: {integrity: sha512-zmPniVzBKv0ie/BEXBR6Isi08hYSd6lS18b8VduG5BzZ2tv6bO/rlwISg+IpGY2XsqAFTXFdTC28YR+UPocnAw==} + dev: false + /vue-eslint-parser@9.3.1(eslint@8.39.0): resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==} engines: {node: ^14.17.0 || >=16.0.0} diff --git a/src/App.vue b/src/App.vue index cadd97b..c1742ac 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,12 +1,61 @@ diff --git a/src/happybirthday.mp4 b/src/assets/happybirthday.mp4 similarity index 100% rename from src/happybirthday.mp4 rename to src/assets/happybirthday.mp4 diff --git a/src/assets/mn01.jpg b/src/assets/mn01.jpg new file mode 100644 index 0000000..95fdccb Binary files /dev/null and b/src/assets/mn01.jpg differ diff --git a/src/assets/mn02.jpg b/src/assets/mn02.jpg new file mode 100644 index 0000000..f3db337 Binary files /dev/null and b/src/assets/mn02.jpg differ diff --git a/src/assets/mn03.jpg b/src/assets/mn03.jpg new file mode 100644 index 0000000..fa92220 Binary files /dev/null and b/src/assets/mn03.jpg differ diff --git a/src/assets/mn04.jpg b/src/assets/mn04.jpg new file mode 100644 index 0000000..5688176 Binary files /dev/null and b/src/assets/mn04.jpg differ diff --git a/src/assets/mn05.jpg b/src/assets/mn05.jpg new file mode 100644 index 0000000..735e4c8 Binary files /dev/null and b/src/assets/mn05.jpg differ diff --git a/src/assets/mn06.jpg b/src/assets/mn06.jpg new file mode 100644 index 0000000..b0c18f9 Binary files /dev/null and b/src/assets/mn06.jpg differ diff --git a/src/assets/mn07.jpg b/src/assets/mn07.jpg new file mode 100644 index 0000000..d494cba Binary files /dev/null and b/src/assets/mn07.jpg differ diff --git a/src/assets/mn08.jpg b/src/assets/mn08.jpg new file mode 100644 index 0000000..fb5c184 Binary files /dev/null and b/src/assets/mn08.jpg differ diff --git a/src/assets/present.png b/src/assets/present.png new file mode 100644 index 0000000..13f256a Binary files /dev/null and b/src/assets/present.png differ diff --git a/src/components/Present.vue b/src/components/Present.vue new file mode 100644 index 0000000..a9f49a0 --- /dev/null +++ b/src/components/Present.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/components/Solution.vue b/src/components/Solution.vue new file mode 100644 index 0000000..9eccee2 --- /dev/null +++ b/src/components/Solution.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/components/Wordle.vue b/src/components/Wordle.vue new file mode 100644 index 0000000..2f9cecd --- /dev/null +++ b/src/components/Wordle.vue @@ -0,0 +1,80 @@ + + + diff --git a/src/main.css b/src/main.css index 155e7b8..fffbb47 100644 --- a/src/main.css +++ b/src/main.css @@ -1,9 +1,91 @@ -body { +:root { + scroll-behavior: smooth; +} +body, #app { width: 100vw; - height: 100vh; + margin: 0; + padding: 0; background: #444; color: #EEE; - overflow: hidden; display: flex; - flex-flow: column no-wrap; + flex-flow: column nowrap; + align-items: center; + font: 20px/1.35 monospace; +} + +#app > header { + margin: 2em 0; +} + +.letter { + width: 2em; + height: 2em; + border: 2px solid #444; + background: #222; + font-size: 2rem; + text-align: center; + line-height: 2; + color: #EEE; + font-weight: bold; + text-transform: uppercase; +} + +.letter.red { background: #222; } +.letter.yellow { background: #EE23; } +.letter.green { background: #2E23; } + +.history, .input { display: flex; } +.input { margin-bottom: 3em; } + +.solution { + display: flex; + flex-flow: column nowrap; + justify-content: center; + align-items: center; + transition: opacity 3s ease-in; + opacity: 1.0; +} +.solution.solved { + opacity: 0.0; +} + +button { + border: 2px solid black; + border-radius: 4px; + padding: .5em 2em; + font-size: 1em; +} + +p { margin: .5em 0; } +p:first-of-type { margin-top: 1em; } +p:last-of-type { margin-bottom: 1em; } + +.v-enter-active, +.v-leave-active { + transition: opacity 0.5s ease; +} + +.v-enter-from, +.v-leave-to { + opacity: 0; +} + +a { + color: white; + font-weight: bold; +} + +.image-box { + text-align: center; + margin: auto; +} + +.center { + text-align: center; + margin: 2em 0; +} + +.footer { + display: block; + height: 5em; } diff --git a/src/main.ts b/src/main.ts index 0ac3a5f..217ee48 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,11 @@ -import './assets/main.css' +import './main.css' import { createApp } from 'vue' import App from './App.vue' +import Confetti from 'vue-confetti' + +export const app = createApp(App) + +app.use(Confetti) +app.mount('#app') -createApp(App).mount('#app')