@hanology/cham-browser 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="160" height="260" viewBox="0 0 160 260"><g id="uuid-691c2f13-17ba-4e98-88b2-4889d68745ee"><path d="m25.37,28.67c-.52.35-3.94,2.64-3.47,4.29.58,2.03,6.22.07,17.77,1.56,3.05.39,8.3,1.25,13.21-1.55,0,0,0,0,0,0,1.28-1.23,2.77-2.96,2.29-4.16-.57-1.43-3.64-1.23-7.76-1.22-13.9.03-17.22-2.14-22.05,1.1Z" style="fill:#c02026; stroke-width:0px;"/><path d="m26.34,60.52c7.79,2.25,14.5-.36,24.35-4.38,2.73-1.11,12.7-5.17,12.21-6.98-.26-.95-3.32-1-10.98-.36-16.72,1.38-33.56,2.78-33.83,6.56-.16,2.29,5.84,4.47,8.25,5.16Z" style="fill:#c02026; stroke-width:0px;"/><path d="m76.79,24.41c-2.43,2.62.62,6.45,1.81,15.56,1.58,12.07-1.99,18.92,2.02,21.63,1.18.8,3.16,1.34,4.67.58,4.67-2.35-1.94-13.81.75-30.79.34-2.14,1-5.48-.86-7.3-1.97-1.93-6.42-1.8-8.39.32Z" style="fill:#c02026; stroke-width:0px;"/><path d="m16.66,88.73c1.22,1.36,4.64,3.61,26.14-3.52,13.89-4.6,20.84-6.91,20.58-8.88-.47-3.54-21.95-2.15-33.85-.48-6.71.94-12.28,2.25-13.82,6.2-.78,2.01-.63,4.9.95,6.67Z" style="fill:#c02026; stroke-width:0px;"/><path d="m63.85,34.39c2.75,3.84,11.96-2.11,29.56-3.34,9.33-.65,12.05.65,20.48-1.25,6.01-1.36,14.57-4.26,14.3-5.84-.58-3.39-41.11,5.79-56.61,3.5-1.26-.19-5.56-.92-7.42,1.34-1.16,1.41-1.41,4.06-.31,5.59Z" style="fill:#c02026; stroke-width:0px;"/><path d="m66.71,54.89c1.71.96,4.34-1.62,7.78-3.5,3.44-1.88,5.98-2.12,16.34-2.92,20.31-1.56,23.56-1.61,29.47-3.21,4.8-1.3,11.9-3.77,11.67-4.96-.25-1.29-8.94-.06-27.13,1.24-26.55,1.9-36.87,1.35-39.11,6.93-.9,2.24-.53,5.57.97,6.41Z" style="fill:#c02026; stroke-width:0px;"/><path d="m128.72,57.56c-.41-.94-1.64-1.26-2.54-1.45-16.65-3.63-49.28,4.73-54.34,3.66-.45-.1-1.73-.37-2.58.32-1.75,1.43.91,4.85-.18,10.51-.17.89-.57,2.55-1.04,5.38-.41,2.47-.37,2.83-.23,3.14.95,2.2,6.5,1.72,10.88,1.45,19.16-1.18,28.75-1.77,31.11-1.54,1.08.1,4.17.46,5.87-1.36.83-.89.92-1.98,1.09-2.36,4.75-10.6,13.24-14.86,11.96-17.76Zm-19.5,13.22c-1.67,1.76-3.85,2.01-7.1,2.32-14.83,1.42-11.71.37-19.14,1.01-2.89.25-6.08.64-6.83-.78-.27-.52-.04-.96.45-3.71.59-3.32.36-3.3.64-3.72,1.31-1.97,5.26-.5,11.82-.57,3.63-.04,2.89-.49,9-.93,7.78-.56,11.7-.81,12.76,1.16.83,1.54-.37,3.92-1.59,5.22Z" style="fill:#c02026; stroke-width:0px;"/><path d="m64.13,89.77c-.89,1.05-2.62,3.88-1.74,6.52.29.86.78,1.49,1.16,1.88,9.76-2.65,17.8-3.72,23.22-4.21,23.99-2.16,35.62-2.15,35.62-2.15,1.7,0,8.66.02,15.1-3.94.25-.15,5.69-3.54,5.09-5.1-.27-.69-1.64-.79-2.39-.8-9.55-.17-33.6,3.86-40.79,4.89-6.03.87-9.28,1.34-14.11,1.44-11.46.24-17.97-2.32-21.17,1.45Z" style="fill:#c02026; stroke-width:0px;"/><path d="m88.89,82.71c-1.4,2.04-.98,15.47-.98,15.47.2,6.33.3,9.5,0,10.45-.16.51-.54,1.6-.1,2.72.83,2.15,3.94,2.65,4.35,2.72.52.08,3.32.54,4.35-.91.74-1.04.21-2.56,0-3.26-1.12-3.75.5-5.62,1.27-12.51.66-5.92.46-14.65-2.23-16.09-1.04-.55-3.09-.9-4.83-.09,0,0-1.04.35-1.83,1.49Z" style="fill:#c02026; stroke-width:0px;"/><path d="m68.77,113.84c5.31,1.62,11.5,2.98,12.87.78.46-.74.18-1.58-.11-2.81-1.11-4.74.17-4.8-.43-13.69-.41-6.04-.64-9.09-2.36-10.15-1.99-1.23-5.42-.71-6.71,1.09-.83,1.16-.61,2.62-.54,3.08.38,2.81.07,8.65-2.72,21.7Z" style="fill:#c02026; stroke-width:0px;"/><path d="m107.38,114.08c2.54,2.49,8.31,2.16,9.79-.18.71-1.12.32-2.53.18-3.08-2.71-10.45.59-25.11-3.63-26.28-.13-.04-1.6-.08-4.53-.18-1.98-.07-2.06-.05-2.18,0-2.17.98-.06,7.44,0,16.13.06,8.55-1.91,11.38.36,13.6Z" style="fill:#c02026; stroke-width:0px;"/><path d="m143.14,110.5c.7-.75.73-1.76.77-3.75.03-1.71.05-4.12-.82-6.27-1.4-3.43-5.33-5.15-9.43-6.71-3.13-1.19-10.18-3.87-12.51-1.09-1.18,1.42-1.05,4.14.18,5.44.86.91,1.99.85,3.63,1.09,2.53.37,6.05,1.01,8.16,3.26,1.79,1.92,3.01,5.52,1.9,7.89-.3.65-.85,1.36-.58,1.74.29.41,1.29.06,2.75-.29,4-.94,4.97-.27,5.94-1.3Z" style="fill:#c02026; stroke-width:0px;"/><path d="m94.04,21.33c2.18-1.56,7.45-1.5,7.27-1.47h0c.07,1.99.16,4.87.22,8.33.05,3.38.1,6.38.04,9.71-.25,13.33-1.98,17.29-4.02,19.9-.64.82-1.75,2.21-2.55,1.95-1.52-.48-.29-6.34-.13-13.1.36-14.67-4.59-22.63-.83-25.33Z" style="fill:#c02026; stroke-width:0px;"/></g><g id="uuid-475a2031-9dcf-47fb-8049-a337ce097e20"><path d="m82.38,195.1c-.34-1.54-7.35-2.32-14.04-.39-6.16,1.78-6.53,4.27-15.45,8.89-7.53,3.89-11.36,4.24-11.33,6.05.03,2.24,5.89,4.44,10.7,4.39,3.05-.03,5.3-.97,5.78-1.17,3.22-1.38,3.94-3.12,7.73-6.31,1.31-1.1,3.23-2.36,7.06-4.87,7.58-4.96,9.75-5.69,9.55-6.59Z" style="fill:#c02026; stroke-width:0px;"/><path d="m54.89,151.13c-4.4,3.15-9.97,8.32-8.96,10.27.98,1.89,7.87.4,11.88-.91,5.59-1.82,6.64-3.62,11.12-5.75,10.03-4.76,23.11-4.43,30.82-4.23,2.49.06,5.11.22,7.68-1.4,4.68-2.96,6.86-10.38,4.58-12.85-1.94-2.1-6.37.13-15.14,2.84-22.64,6.97-29.99,3.45-41.98,12.03Z" style="fill:#c02026; stroke-width:0px;"/><path d="m98.12,135.63c.34-1.86-2.5-2.2-7.91-8.61-3.68-4.36-4.44-6.66-7.21-7.21-2.24-.44-5.09.4-6.51,2.33-2.16,2.9.92,5.58-.7,9.77-1.85,4.8-7.54,5.55-7.21,8.84.1.97.69,1.85,1.4,2.33,2.06,1.38,5.49-.47,6.89-1.17,10.59-5.31,20.6-2.74,21.26-6.27Z" style="fill:#c02026; stroke-width:0px;"/><path d="m55.75,192.03c-.92-1.43-5.07.65-12.14,1.9-11.86,2.09-19.58-.33-20.67,2.56-.26.68-.2,1.8,1.33,3.7.44.61,1.11,1.67,1.4,3.12.64,3.14-1.15,4.84-.45,5.99,1.17,1.93,8.08.28,13.63-2.11,3.49-1.5,8.36-4.11,13.44-8.79,2.14-2.37,4.24-5.15,3.46-6.36Z" style="fill:#c02026; stroke-width:0px;"/><path d="m23.89,183.87c2.93,1.75,6.93.05,14.91-3.34,5.87-2.49,8.09-4.45,9.55-6.14.58-.67,4.53-5.25,3.22-7.4-.96-1.57-4.14-.85-11.85.28-15.04,2.21-17.5,1.61-19.08,4.19-2.23,3.66-.52,10.18,3.23,12.41Z" style="fill:#c02026; stroke-width:0px;"/><path d="m44.01,150.66c6.26-.65,10,.08,11.62-2.35,1.16-1.72.74-4.43-.45-6.17-1.56-2.28-4.05-2.25-13.82-3.26-3.18-.33-9-.96-17.68-1.16-4.38-.1-5.57,0-6.51.93-3.23,3.22-1.16,13.92,5.04,15.82,3.45,1.06,6.84-1.02,7.8-1.66,3.64-.75,8.4-1.58,14-2.16Z" style="fill:#c02026; stroke-width:0px;"/><path d="m102.3,187.26c-.2.16-1.17.98-1.85,2.4-2.62,5.48,2.4,13.12,4.45,16.22,2.17,3.3,4.89,5.93,10.31,11.17,7.99,7.72,11.23,9.57,13.1,10.53,4.55,2.31,7.99,4.06,10.96,2.79,5.36-2.29,7.32-13.64,4.08-21.91-1.76-4.49-8.69-9.15-22.56-18.47-.77-.51-3.96-2.62-8.59-3.65-2.67-.59-6.95-1.48-9.9.93Z" style="fill:#c02026; stroke-width:0px;"/><path d="m90.32,166.05c2.71.09,4.85,1.45,5.16,3.07.5,2.6-3.97,4.65-4.44,4.86-.92.41-4.53,2.02-6.85,0-1.38-1.2-1.84-3.28-1.44-4.87.4-1.61,1.37-1.52,2.52-3.61.72-1.3.96-2.79,1.44-5.77.42-2.61.63-3.91.36-4.33-1.5-2.26-10.74-1.02-16.4,3.97-8.57,7.54-9.83,24.46-2.68,29.78,4.18,3.11,10.07,1.38,18.47-1.08,9.67-2.84,22.5-6.61,23.87-15.72,1.21-8.04-7.72-15-8.83-15.86-1.22-.95-6.86-5.37-9.92-3.46-2.49,1.56-2.24,6.69-2.16,8.33.1,2,.54,3.62.9,4.69Z" style="fill:#c02026; stroke-width:0px;"/><path d="m76.97,210.81c.62,11.14,2.26,17.04-1.66,22.12-1.15,1.5-2.43,2.46-3.28,3.01-.38,1.01-.87,2.66-.86,4.73,0,2.31.63,4.12,1.07,5.16,3.28.25,8.76.11,12.67-3.44,3.35-3.04,3.25-6.49,4.51-16.97,1.12-9.25,3.81-28.12.43-36.3-.5-1.22-1.26-2.49-2.58-3.03-2.87-1.16-6.52,1.93-6.82,2.19-1.23,1.07-4.49,4.47-3.48,22.54Z" style="fill:#c02026; stroke-width:0px;"/></g><g id="uuid-d894f56d-8ec7-4dc8-a748-3d877febe94e"><path d="m126.33,11.36c12.5,0,22.67,10.17,22.67,22.67v192.65c0,12.5-10.17,22.67-22.67,22.67H33.67c-12.5,0-22.67-10.17-22.67-22.67V34.03c0-12.5,10.17-22.67,22.67-22.67h92.65m0-6H33.67c-15.84,0-28.67,12.84-28.67,28.67v192.65c0,15.84,12.84,28.67,28.67,28.67h92.65c15.84,0,28.67-12.84,28.67-28.67V34.03c0-15.84-12.84-28.67-28.67-28.67h0Z" style="fill:#c02026; stroke-width:0px;"/></g></svg>
|
|
@@ -3,6 +3,7 @@ import { ref } from 'vue'
|
|
|
3
3
|
import { useReadingMode, THEMES, THEME_LABELS, FONT_SIZES } from '../composables/useReadingMode'
|
|
4
4
|
import type { LayoutMode, FontSize } from '../composables/useReadingMode'
|
|
5
5
|
import { useI18n, LOCALE_LABELS, type Locale } from '../composables/useI18n'
|
|
6
|
+
import logoSvg from '../assets/hanology-logo.svg'
|
|
6
7
|
|
|
7
8
|
defineProps<{
|
|
8
9
|
context?: string
|
|
@@ -26,7 +27,7 @@ function toggleSettings() { settingsOpen.value = !settingsOpen.value }
|
|
|
26
27
|
<template>
|
|
27
28
|
<nav class="sidenav">
|
|
28
29
|
<button class="sn-brand" @click="emit('home')" title="首頁">
|
|
29
|
-
<
|
|
30
|
+
<img :src="logoSvg" alt="漢流" class="sn-logo" />
|
|
30
31
|
</button>
|
|
31
32
|
|
|
32
33
|
<button class="sn-btn" @click="emit('back')" title="返回">
|
|
@@ -127,27 +128,20 @@ function toggleSettings() { settingsOpen.value = !settingsOpen.value }
|
|
|
127
128
|
|
|
128
129
|
.sn-brand {
|
|
129
130
|
width: 40px; height: 48px;
|
|
130
|
-
border:
|
|
131
|
+
border: none;
|
|
131
132
|
border-radius: 3px;
|
|
132
133
|
background: none;
|
|
133
134
|
display: flex; align-items: center; justify-content: center;
|
|
134
135
|
cursor: pointer;
|
|
135
136
|
transition: all 0.2s;
|
|
136
137
|
margin-bottom: 4px;
|
|
138
|
+
padding: 2px;
|
|
137
139
|
}
|
|
138
|
-
.sn-brand:hover {
|
|
139
|
-
.sn-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
font-family: var(--serif);
|
|
144
|
-
font-size: 14px; font-weight: 900;
|
|
145
|
-
color: var(--vermillion);
|
|
146
|
-
transition: color 0.2s;
|
|
147
|
-
display: flex;
|
|
148
|
-
align-items: center;
|
|
149
|
-
letter-spacing: 2px;
|
|
150
|
-
line-height: 1;
|
|
140
|
+
.sn-brand:hover { opacity: 0.8; }
|
|
141
|
+
.sn-logo {
|
|
142
|
+
height: 100%;
|
|
143
|
+
width: auto;
|
|
144
|
+
object-fit: contain;
|
|
151
145
|
}
|
|
152
146
|
|
|
153
147
|
.sn-btn {
|
|
@@ -297,8 +291,7 @@ function toggleSettings() { settingsOpen.value = !settingsOpen.value }
|
|
|
297
291
|
|
|
298
292
|
@media (max-width: 768px) {
|
|
299
293
|
.sidenav { width: 44px; padding: 8px 0; gap: 6px; }
|
|
300
|
-
.sn-brand { width: 32px; height:
|
|
301
|
-
.sn-seal { font-size: 15px; }
|
|
294
|
+
.sn-brand { width: 32px; height: 38px; }
|
|
302
295
|
.sn-btn { width: 30px; height: 30px; }
|
|
303
296
|
.sn-context { font-size: 10px; max-height: 80px; }
|
|
304
297
|
}
|
|
@@ -5,6 +5,7 @@ import { useReadingMode } from '../composables/useReadingMode'
|
|
|
5
5
|
import { useHorizontalScroll } from '../composables/useHorizontalScroll'
|
|
6
6
|
import SideNav from '../components/SideNav.vue'
|
|
7
7
|
import ReadingToolbar from '../components/ReadingToolbar.vue'
|
|
8
|
+
import logoSvg from '../assets/hanology-logo.svg'
|
|
8
9
|
import { ref, computed } from 'vue'
|
|
9
10
|
import { useRouter } from 'vue-router'
|
|
10
11
|
|
|
@@ -44,7 +45,7 @@ function goHome() { router.push('/') }
|
|
|
44
45
|
<h1 class="h-page-title">關於漢流 / About Hanology</h1>
|
|
45
46
|
</header>
|
|
46
47
|
<div class="h-content">
|
|
47
|
-
<
|
|
48
|
+
<img :src="logoSvg" alt="漢流" class="h-logo" />
|
|
48
49
|
<div class="h-about-block">
|
|
49
50
|
<h2>漢流 · Hanology</h2>
|
|
50
51
|
<p><strong>漢流</strong>,粵音 Han-Lou,普音 Han-Liu,意為「漢學之流」。</p>
|
|
@@ -133,18 +134,12 @@ function goHome() { router.push('/') }
|
|
|
133
134
|
.h-page-title { font-size: 20px; font-weight: 700; letter-spacing: 2px; }
|
|
134
135
|
|
|
135
136
|
.h-content { max-width: 680px; margin: 0 auto; }
|
|
136
|
-
.h-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
border: 2px solid var(--vermillion);
|
|
143
|
-
color: var(--vermillion);
|
|
144
|
-
font-size: 24px; font-family: var(--serif);
|
|
145
|
-
font-weight: 900; letter-spacing: 2px;
|
|
146
|
-
margin: 0 auto 40px; border-radius: 4px;
|
|
147
|
-
line-height: 1;
|
|
137
|
+
.h-logo {
|
|
138
|
+
height: 80px;
|
|
139
|
+
width: auto;
|
|
140
|
+
object-fit: contain;
|
|
141
|
+
margin: 0 auto 40px;
|
|
142
|
+
display: block;
|
|
148
143
|
}
|
|
149
144
|
.h-about-block {
|
|
150
145
|
margin-bottom: 40px; padding: 32px;
|
|
@@ -9,6 +9,7 @@ import { useHorizontalScroll } from '../composables/useHorizontalScroll'
|
|
|
9
9
|
import BookCard from '../components/BookCard.vue'
|
|
10
10
|
import SideNav from '../components/SideNav.vue'
|
|
11
11
|
import ReadingToolbar from '../components/ReadingToolbar.vue'
|
|
12
|
+
import logoSvg from '../assets/hanology-logo.svg'
|
|
12
13
|
import type { BookMeta } from '../types'
|
|
13
14
|
|
|
14
15
|
const { scale, books, singleBook, loadLibrary } = useLibrary()
|
|
@@ -105,7 +106,7 @@ function openBook(bookId: string) {
|
|
|
105
106
|
<!-- ═══════ 橫排模式 ═══════ -->
|
|
106
107
|
<div v-else class="lib-root">
|
|
107
108
|
<header class="lib-hero">
|
|
108
|
-
<
|
|
109
|
+
<img :src="logoSvg" alt="漢流" class="lib-logo" />
|
|
109
110
|
<h1>古典詩文圖書館</h1>
|
|
110
111
|
<p class="lib-subtitle">Classical Chinese Text Library</p>
|
|
111
112
|
<div class="lib-stats-bar">
|
|
@@ -171,22 +172,6 @@ function openBook(bookId: string) {
|
|
|
171
172
|
justify-content: center;
|
|
172
173
|
padding: 40px 20px;
|
|
173
174
|
}
|
|
174
|
-
.v-seal {
|
|
175
|
-
writing-mode: horizontal-tb;
|
|
176
|
-
display: inline-flex;
|
|
177
|
-
align-items: center;
|
|
178
|
-
justify-content: center;
|
|
179
|
-
width: 48px; height: 48px;
|
|
180
|
-
border: 2px solid var(--vermillion);
|
|
181
|
-
color: var(--vermillion);
|
|
182
|
-
font-size: 14px;
|
|
183
|
-
font-family: var(--serif);
|
|
184
|
-
font-weight: 900;
|
|
185
|
-
margin-bottom: 0;
|
|
186
|
-
margin-left: 16px;
|
|
187
|
-
border-radius: 4px;
|
|
188
|
-
letter-spacing: 0;
|
|
189
|
-
}
|
|
190
175
|
.v-title {
|
|
191
176
|
font-size: 48px; font-weight: 900;
|
|
192
177
|
letter-spacing: 16px; color: var(--ink);
|
|
@@ -283,21 +268,11 @@ function openBook(bookId: string) {
|
|
|
283
268
|
text-align: center;
|
|
284
269
|
margin-bottom: 48px;
|
|
285
270
|
}
|
|
286
|
-
.lib-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
align-items: center;
|
|
291
|
-
justify-content: center;
|
|
292
|
-
width: 40px; height: 56px;
|
|
293
|
-
border: 2px solid var(--vermillion);
|
|
294
|
-
color: var(--vermillion);
|
|
295
|
-
font-size: 20px;
|
|
296
|
-
font-family: var(--serif);
|
|
297
|
-
letter-spacing: 2px;
|
|
271
|
+
.lib-logo {
|
|
272
|
+
height: 64px;
|
|
273
|
+
width: auto;
|
|
274
|
+
object-fit: contain;
|
|
298
275
|
margin-bottom: 24px;
|
|
299
|
-
border-radius: 4px;
|
|
300
|
-
line-height: 1;
|
|
301
276
|
}
|
|
302
277
|
.lib-hero h1 {
|
|
303
278
|
font-size: 36px;
|