From 924e4242517f63fca27fe6f9f2cf77e10a9d3720 Mon Sep 17 00:00:00 2001 From: Md Afiq Iskandar Date: Tue, 8 Oct 2024 14:48:28 +0800 Subject: [PATCH] Add accessibility --- app.vue | 2 +- assets/style/css/base/theme.css | 193 ++++++++++++++++++++++++-------- components/VoiceReader.vue | 35 ++++++ components/layouts/Header.vue | 61 ++++++++++ composables/themeList.js | 38 +------ composables/themeList2.js | 104 +++++++++++++++++ composables/useVoiceReader.js | 55 +++++++++ navigation/index.js | 121 -------------------- 8 files changed, 402 insertions(+), 207 deletions(-) create mode 100644 components/VoiceReader.vue create mode 100644 composables/themeList2.js create mode 100644 composables/useVoiceReader.js diff --git a/app.vue b/app.vue index 6bfcf14..bdbe209 100644 --- a/app.vue +++ b/app.vue @@ -17,7 +17,7 @@ onMounted(() => { }, 1000); // Get theme from localStorage - let theme = localStorage.getItem("theme") || "default"; + let theme = localStorage.getItem("theme") || "biasa"; document.documentElement.setAttribute("data-theme", theme); }); diff --git a/assets/style/css/base/theme.css b/assets/style/css/base/theme.css index b1354df..3ea26c4 100644 --- a/assets/style/css/base/theme.css +++ b/assets/style/css/base/theme.css @@ -1,4 +1,4 @@ -html[data-theme="default"] { +html[data-theme="biasa"] { --color-primary: 0, 165, 154; --color-secondary: 97, 176, 183; --color-accent: 243, 244, 246; @@ -36,7 +36,7 @@ html[data-theme="default"] { --tw-shadow: #e5eaf2; } -html[data-theme="dark"] { +html[data-theme="gelap"] { --color-primary: 97, 176, 183; --color-secondary: 13, 27, 42; --color-accent: 15, 23, 42; @@ -48,6 +48,11 @@ html[data-theme="dark"] { --border-color: 30, 41, 59; --bg-1: 15, 23, 42; --bg-2: 30, 41, 59; + --sidebar: 38, 50, 55; + --sidebar-menu: 26, 35, 38; + --sidebar-text: 255, 255, 255; + --header: 49, 65, 71; + --header-text: 255, 255, 255; --scroll-color: 170, 170, 170; --scroll-hover-color: 155, 155, 155; --fk-border-color: 71, 85, 105; @@ -68,53 +73,143 @@ html[data-theme="dark"] { --tw-shadow: #e5eaf2; } -html[data-theme="nier"] { - --color-primary: 99, 95, 84; - --color-secondary: 207, 107, 83; - --color-accent: 243, 88, 106; - --color-success: 79, 192, 103; - --color-info: 65, 133, 242; - --color-warning: 246, 141, 32; - --color-danger: 229, 83, 69; - --text-color: 78, 75, 66; - --border-color: 153, 152, 131; - --bg-1: 205, 200, 176; - --bg-2: 218, 212, 187; - --scroll-color: 99, 95, 84; - --scroll-hover-color: 99, 95, 84; - --fk-border-color: 99, 95, 84; - --fk-placeholder-color: 188, 175, 145; - --box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); - --cp-bg: 255, 255, 255; - --rounded-box: 0.5rem; - --rounded-btn: 0.5rem; - --rounded-badge: 1.9rem; - --animation-btn: 0.25s; - --animation-input: 0.2s; - --btn-text-case: uppercase; - --btn-focus-scale: 0.95; - --padding-btn: 0.625rem 0.875rem; - --border-btn: 1px; - --tab-border: 1px; - --tab-radius: 0.5rem; - --tw-shadow: #e5eaf2; -} - -html[data-theme="custom1"] { - --color-primary: 9, 76, 90; - --color-secondary: 62, 72, 83; - --color-accent: 0, 103, 236; - --color-success: 11, 152, 76; - --color-info: 208, 89, 41; - --color-warning: 229, 197, 13; - --color-danger: 238, 5, 34; - --text-color: 15, 15, 14; - --border-color: 153, 152, 131; - --bg-1: 214, 215, 206; - --bg-2: 235, 232, 217; - --scroll-color: 9, 76, 90; - --scroll-hover-color: 9, 76, 90; - --box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); +html[data-theme="biru"] { + --color-primary: 0, 102, 204; + --color-secondary: 51, 153, 255; + --color-accent: 255, 204, 0; + --color-success: 46, 204, 113; + --color-info: 52, 152, 219; + --color-warning: 241, 196, 15; + --color-danger: 231, 76, 60; + --text-color: 0, 0, 0; + --border-color: 200, 200, 200; + --bg-1: 240, 248, 255; + --bg-2: 230, 240, 250; + --sidebar: 38, 50, 55; + --sidebar-menu: 26, 35, 38; + --sidebar-text: 255, 255, 255; + --header: 49, 65, 71; + --header-text: 255, 255, 255; + --scroll-color: 180, 180, 180; + --scroll-hover-color: 150, 150, 150; + --fk-border-color: 200, 200, 200; + --fk-placeholder-color: 150, 150, 150; + --box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), + 0 2px 4px -2px rgba(0, 0, 0, 0.1); + --cp-bg: 255, 255, 255; + --rounded-box: 0.5rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: 0.2s; + --btn-text-case: uppercase; + --btn-focus-scale: 0.95; + --padding-btn: 0.625rem 1.5rem; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --tw-shadow: #e5eaf2; +} + +html[data-theme="merah"] { + --color-primary: 204, 0, 0; + --color-secondary: 255, 102, 102; + --color-accent: 255, 255, 153; + --color-success: 46, 204, 113; + --color-info: 52, 152, 219; + --color-warning: 241, 196, 15; + --color-danger: 231, 76, 60; + --text-color: 0, 0, 0; + --border-color: 200, 200, 200; + --bg-1: 255, 240, 240; + --bg-2: 255, 230, 230; + --sidebar: 38, 50, 55; + --sidebar-menu: 26, 35, 38; + --sidebar-text: 255, 255, 255; + --header: 49, 65, 71; + --header-text: 255, 255, 255; + --scroll-color: 180, 180, 180; + --scroll-hover-color: 150, 150, 150; + --fk-border-color: 200, 200, 200; + --fk-placeholder-color: 150, 150, 150; + --box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), + 0 2px 4px -2px rgba(0, 0, 0, 0.1); + --cp-bg: 255, 255, 255; + --rounded-box: 0.5rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: 0.2s; + --btn-text-case: uppercase; + --btn-focus-scale: 0.95; + --padding-btn: 0.625rem 1.5rem; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --tw-shadow: #e5eaf2; +} + +html[data-theme="ungu"] { + --color-primary: 75, 0, 130; + --color-secondary: 138, 43, 226; + --color-accent: 255, 215, 0; + --color-success: 46, 204, 113; + --color-info: 52, 152, 219; + --color-warning: 241, 196, 15; + --color-danger: 231, 76, 60; + --text-color: 0, 0, 0; + --border-color: 200, 200, 200; + --bg-1: 240, 248, 255; + --bg-2: 230, 240, 250; + --sidebar: 38, 50, 55; + --sidebar-menu: 26, 35, 38; + --sidebar-text: 255, 255, 255; + --header: 49, 65, 71; + --header-text: 255, 255, 255; + --scroll-color: 180, 180, 180; + --scroll-hover-color: 150, 150, 150; + --fk-border-color: 200, 200, 200; + --fk-placeholder-color: 150, 150, 150; + --box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), + 0 2px 4px -2px rgba(0, 0, 0, 0.1); + --cp-bg: 255, 255, 255; + --rounded-box: 0.5rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: 0.2s; + --btn-text-case: uppercase; + --btn-focus-scale: 0.95; + --padding-btn: 0.625rem 1.5rem; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --tw-shadow: #e5eaf2; +} + +html[data-theme="oren"] { + --color-primary: 255, 103, 0; + --color-secondary: 255, 159, 64; + --color-accent: 0, 128, 128; + --color-success: 46, 204, 113; + --color-info: 52, 152, 219; + --color-warning: 241, 196, 15; + --color-danger: 231, 76, 60; + --text-color: 0, 0, 0; + --border-color: 200, 200, 200; + --bg-1: 255, 250, 240; + --bg-2: 255, 245, 230; + --sidebar: 38, 50, 55; + --sidebar-menu: 26, 35, 38; + --sidebar-text: 255, 255, 255; + --header: 49, 65, 71; + --header-text: 255, 255, 255; + --scroll-color: 180, 180, 180; + --scroll-hover-color: 150, 150, 150; + --fk-border-color: 200, 200, 200; + --fk-placeholder-color: 150, 150, 150; + --box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), + 0 2px 4px -2px rgba(0, 0, 0, 0.1); --cp-bg: 255, 255, 255; --rounded-box: 0.5rem; --rounded-btn: 0.5rem; diff --git a/components/VoiceReader.vue b/components/VoiceReader.vue new file mode 100644 index 0000000..8fe3d04 --- /dev/null +++ b/components/VoiceReader.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/components/layouts/Header.vue b/components/layouts/Header.vue index 38c8e44..56ea7f1 100644 --- a/components/layouts/Header.vue +++ b/components/layouts/Header.vue @@ -11,6 +11,7 @@ const langList = languageList(); const locale = ref("en"); const themes = themeList(); +const themes2 = themeList2(); function setTheme(theme) { document.documentElement.setAttribute("data-theme", theme); @@ -85,6 +86,66 @@ onMounted(() => {
+ + + + + + + + + + + + + +