design: pop more color
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
"@vueuse/router": "^10.11.1",
|
"@vueuse/router": "^10.11.1",
|
||||||
"bulma": "^0.9.4",
|
"bulma": "^0.9.4",
|
||||||
"date-fns": "^2.30.0",
|
"date-fns": "^2.30.0",
|
||||||
|
"font-color-contrast": "^11.1.0",
|
||||||
"fontfaceobserver": "^2.3.0",
|
"fontfaceobserver": "^2.3.0",
|
||||||
"isomorphic-fetch": "^3.0.0",
|
"isomorphic-fetch": "^3.0.0",
|
||||||
"markdown-it": "^14.1.0",
|
"markdown-it": "^14.1.0",
|
||||||
@@ -32,6 +33,7 @@
|
|||||||
"markdown-it-shikiji": "^0.10.2",
|
"markdown-it-shikiji": "^0.10.2",
|
||||||
"nanoid": "^5.0.9",
|
"nanoid": "^5.0.9",
|
||||||
"notyf": "^3.10.0",
|
"notyf": "^3.10.0",
|
||||||
|
"pastel-color": "^1.0.3",
|
||||||
"pinia": "^2.2.6",
|
"pinia": "^2.2.6",
|
||||||
"pouchdb-adapter-indexeddb": "^9.0.0",
|
"pouchdb-adapter-indexeddb": "^9.0.0",
|
||||||
"pouchdb-browser": "^9.0.0",
|
"pouchdb-browser": "^9.0.0",
|
||||||
|
|||||||
18
pnpm-lock.yaml
generated
18
pnpm-lock.yaml
generated
@@ -32,6 +32,9 @@ importers:
|
|||||||
date-fns:
|
date-fns:
|
||||||
specifier: ^2.30.0
|
specifier: ^2.30.0
|
||||||
version: 2.30.0
|
version: 2.30.0
|
||||||
|
font-color-contrast:
|
||||||
|
specifier: ^11.1.0
|
||||||
|
version: 11.1.0
|
||||||
fontfaceobserver:
|
fontfaceobserver:
|
||||||
specifier: ^2.3.0
|
specifier: ^2.3.0
|
||||||
version: 2.3.0
|
version: 2.3.0
|
||||||
@@ -68,6 +71,9 @@ importers:
|
|||||||
notyf:
|
notyf:
|
||||||
specifier: ^3.10.0
|
specifier: ^3.10.0
|
||||||
version: 3.10.0
|
version: 3.10.0
|
||||||
|
pastel-color:
|
||||||
|
specifier: ^1.0.3
|
||||||
|
version: 1.0.3
|
||||||
pinia:
|
pinia:
|
||||||
specifier: ^2.2.6
|
specifier: ^2.2.6
|
||||||
version: 2.2.6(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2))
|
version: 2.2.6(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2))
|
||||||
@@ -2325,6 +2331,9 @@ packages:
|
|||||||
flatted@3.2.7:
|
flatted@3.2.7:
|
||||||
resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
|
resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
|
||||||
|
|
||||||
|
font-color-contrast@11.1.0:
|
||||||
|
resolution: {integrity: sha512-PxpFaesCSsDwaciw7MF6B2thUkH7skqZlz4BzUnvapR6+Es2877q7ru/tqfsITuaraPz+TGfsOfdtU4D0qjqEw==}
|
||||||
|
|
||||||
fontfaceobserver@2.3.0:
|
fontfaceobserver@2.3.0:
|
||||||
resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==}
|
resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==}
|
||||||
|
|
||||||
@@ -2915,6 +2924,9 @@ packages:
|
|||||||
parse-srcset@1.0.2:
|
parse-srcset@1.0.2:
|
||||||
resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
|
resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
|
||||||
|
|
||||||
|
pastel-color@1.0.3:
|
||||||
|
resolution: {integrity: sha512-VtKzbIgQUc+U0JBFcuNqcCPYfnPYZaf0VPpdqaRUaHYBwMTh3nT9ncq3gsQccqtmhlNdw1aNqZnefVvPE6dtmg==}
|
||||||
|
|
||||||
path-exists@4.0.0:
|
path-exists@4.0.0:
|
||||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -3850,7 +3862,7 @@ snapshots:
|
|||||||
'@babel/core': 7.26.0
|
'@babel/core': 7.26.0
|
||||||
'@babel/helper-compilation-targets': 7.25.9
|
'@babel/helper-compilation-targets': 7.25.9
|
||||||
'@babel/helper-plugin-utils': 7.22.5
|
'@babel/helper-plugin-utils': 7.22.5
|
||||||
debug: 4.3.4
|
debug: 4.3.7
|
||||||
lodash.debounce: 4.0.8
|
lodash.debounce: 4.0.8
|
||||||
resolve: 1.22.2
|
resolve: 1.22.2
|
||||||
semver: 6.3.1
|
semver: 6.3.1
|
||||||
@@ -6109,6 +6121,8 @@ snapshots:
|
|||||||
|
|
||||||
flatted@3.2.7: {}
|
flatted@3.2.7: {}
|
||||||
|
|
||||||
|
font-color-contrast@11.1.0: {}
|
||||||
|
|
||||||
fontfaceobserver@2.3.0: {}
|
fontfaceobserver@2.3.0: {}
|
||||||
|
|
||||||
for-each@0.3.3:
|
for-each@0.3.3:
|
||||||
@@ -6664,6 +6678,8 @@ snapshots:
|
|||||||
|
|
||||||
parse-srcset@1.0.2: {}
|
parse-srcset@1.0.2: {}
|
||||||
|
|
||||||
|
pastel-color@1.0.3: {}
|
||||||
|
|
||||||
path-exists@4.0.0: {}
|
path-exists@4.0.0: {}
|
||||||
|
|
||||||
path-is-absolute@1.0.1: {}
|
path-is-absolute@1.0.1: {}
|
||||||
|
|||||||
45
src/components/RepoList.vue
Normal file
45
src/components/RepoList.vue
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import fontColorContrast from 'font-color-contrast'
|
||||||
|
import { getHex } from 'pastel-color'
|
||||||
|
|
||||||
|
import { useGitHubLogin } from '@/hooks/useGitHubLogin.hook'
|
||||||
|
import { useFavoriteRepos } from '@/modules/repo/hooks/useFavoriteRepos.hook'
|
||||||
|
|
||||||
|
const { username } = useGitHubLogin()
|
||||||
|
const { savedFavoriteRepos } = useFavoriteRepos()
|
||||||
|
|
||||||
|
const getStyle = (repo: string) => {
|
||||||
|
const backgroundColor = getHex(repo)
|
||||||
|
return { backgroundColor, color: fontColorContrast(backgroundColor) }
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<section v-if="savedFavoriteRepos.length" class="repo-list">
|
||||||
|
<router-link
|
||||||
|
v-for="favoriteRepo in savedFavoriteRepos"
|
||||||
|
:key="favoriteRepo._id"
|
||||||
|
:to="{
|
||||||
|
name: 'FluxNoteView',
|
||||||
|
params: {
|
||||||
|
user: username,
|
||||||
|
repo: favoriteRepo.name
|
||||||
|
}
|
||||||
|
}"
|
||||||
|
class="button"
|
||||||
|
:style="getStyle(`${username}${favoriteRepo.name}`)"
|
||||||
|
>
|
||||||
|
{{ favoriteRepo.name }}
|
||||||
|
</router-link>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.repo-list {
|
||||||
|
a {
|
||||||
|
border: 0;
|
||||||
|
width: 100px;
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -2,22 +2,7 @@
|
|||||||
<div class="welcome-world">
|
<div class="welcome-world">
|
||||||
<h1 class="title is-1">Lite Note</h1>
|
<h1 class="title is-1">Lite Note</h1>
|
||||||
|
|
||||||
<section v-if="savedFavoriteRepos.length">
|
<repo-list />
|
||||||
<router-link
|
|
||||||
v-for="favoriteRepo in savedFavoriteRepos"
|
|
||||||
:key="favoriteRepo._id"
|
|
||||||
:to="{
|
|
||||||
name: 'FluxNoteView',
|
|
||||||
params: {
|
|
||||||
user: username,
|
|
||||||
repo: favoriteRepo.name
|
|
||||||
}
|
|
||||||
}"
|
|
||||||
class="button"
|
|
||||||
>
|
|
||||||
{{ favoriteRepo.name }}
|
|
||||||
</router-link>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<last-visited />
|
<last-visited />
|
||||||
|
|
||||||
@@ -91,20 +76,19 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from 'vue'
|
import { defineComponent } from 'vue'
|
||||||
|
|
||||||
|
import RepoList from '@/components/RepoList.vue'
|
||||||
import SignInGithub from '@/components/SignInGithub.vue'
|
import SignInGithub from '@/components/SignInGithub.vue'
|
||||||
import { useForm } from '@/hooks/useForm.hook'
|
import { useForm } from '@/hooks/useForm.hook'
|
||||||
import { useGitHubLogin } from '@/hooks/useGitHubLogin.hook'
|
import { useGitHubLogin } from '@/hooks/useGitHubLogin.hook'
|
||||||
import LastVisited from '@/modules/history/components/LastVisited.vue'
|
import LastVisited from '@/modules/history/components/LastVisited.vue'
|
||||||
import { useFavoriteRepos } from '@/modules/repo/hooks/useFavoriteRepos.hook'
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'WelcomeWorld',
|
name: 'WelcomeWorld',
|
||||||
components: { SignInGithub, LastVisited },
|
components: { SignInGithub, LastVisited, RepoList },
|
||||||
setup() {
|
setup() {
|
||||||
const { isLogged, username } = useGitHubLogin()
|
const { isLogged, username } = useGitHubLogin()
|
||||||
const { savedFavoriteRepos } = useFavoriteRepos()
|
|
||||||
|
|
||||||
return { ...useForm(), isLogged, username, savedFavoriteRepos }
|
return { ...useForm(), isLogged, username }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
1
src/shims-vue.d.ts
vendored
1
src/shims-vue.d.ts
vendored
@@ -13,3 +13,4 @@ declare module 'markdown-it-latex'
|
|||||||
declare module 'markdown-it-iframe'
|
declare module 'markdown-it-iframe'
|
||||||
declare module 'markdown-it-shikiji'
|
declare module 'markdown-it-shikiji'
|
||||||
declare module '@rushstack/eslint-patch/modern-module-resolution'
|
declare module '@rushstack/eslint-patch/modern-module-resolution'
|
||||||
|
declare module 'pastel-color'
|
||||||
|
|||||||
Reference in New Issue
Block a user