ED:Change color/fix font
This commit is contained in:
parent
959a7e3f85
commit
1e7a183668
9 changed files with 31 additions and 30 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
// generated by the @nuxtjs/tailwindcss <https://github.com/nuxt-modules/tailwindcss> module at 13/1/2569 11:18:03
|
// generated by the @nuxtjs/tailwindcss <https://github.com/nuxt-modules/tailwindcss> module at 13/1/2569 11:39:33
|
||||||
import "@nuxtjs/tailwindcss/config-ctx"
|
import "@nuxtjs/tailwindcss/config-ctx"
|
||||||
import configMerger from "@nuxtjs/tailwindcss/merger";
|
import configMerger from "@nuxtjs/tailwindcss/merger";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
--error: #ef4444;
|
--error: #ef4444;
|
||||||
|
|
||||||
/* Typography */
|
/* Typography */
|
||||||
--font-main: "Inter", "Prompt", "Sarabun", sans-serif;
|
--font-main: "Prompt", sans-serif;
|
||||||
|
|
||||||
/* Layout */
|
/* Layout */
|
||||||
--sidebar-width: 260px;
|
--sidebar-width: 260px;
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ const emit = defineEmits<{
|
||||||
|
|
||||||
.btn-premium-secondary {
|
.btn-premium-secondary {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: var(--text-main);
|
color: #1e293b;
|
||||||
padding: 0.875rem;
|
padding: 0.875rem;
|
||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
|
|
@ -175,7 +175,8 @@ const emit = defineEmits<{
|
||||||
}
|
}
|
||||||
.btn-premium-secondary:hover {
|
.btn-premium-secondary:hover {
|
||||||
background: var(--bg-body);
|
background: var(--bg-body);
|
||||||
border-color: #cbd5e1;
|
border-color: #94a3b8;
|
||||||
|
color: #0f172a;
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.dark) .btn-premium-secondary {
|
:global(.dark) .btn-premium-secondary {
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
sans: ['Inter', 'Prompt', 'Sarabun', 'sans-serif']
|
sans: ['Prompt', 'sans-serif']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
plugins: []
|
plugins: []
|
||||||
}; /* v9-24ec813999eb8913 */
|
}; /* v9-ac7f45645412e91a */
|
||||||
|
|
|
||||||
|
|
@ -101,15 +101,15 @@ const filteredCourses = computed(() => {
|
||||||
<input
|
<input
|
||||||
v-model="searchQuery"
|
v-model="searchQuery"
|
||||||
type="text"
|
type="text"
|
||||||
class="input-field text-slate-900 dark:text-white bg-white dark:bg-slate-800"
|
class="input-field text-slate-900 dark:text-white bg-white dark:bg-slate-800 placeholder:text-slate-500"
|
||||||
placeholder="ค้นหาคอร์ส..."
|
placeholder="ค้นหาคอร์ส..."
|
||||||
style="padding-left: 36px; width: 240px;"
|
style="padding-left: 36px; width: 240px;"
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<!-- Sorting Select -->
|
<!-- Sorting Select -->
|
||||||
<select class="input-field text-slate-900 dark:text-white bg-white dark:bg-slate-800" style="width: auto;">
|
<select class="input-field bg-white dark:bg-slate-800" style="width: auto; color: #0f172a;">
|
||||||
<option>เรียงตาม: ล่าสุด</option>
|
<option style="color: #0f172a;">เรียงตาม: ล่าสุด</option>
|
||||||
<option>ยอดนิยม</option>
|
<option style="color: #0f172a;">ยอดนิยม</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,7 @@ const seek = (e: MouseEvent) => {
|
||||||
<div class="mt-8 border-t border-white/5 pt-2">
|
<div class="mt-8 border-t border-white/5 pt-2">
|
||||||
<div class="chapter-header px-4 py-2 uppercase tracking-widest text-[10px]">03. แบบทดสอบท้ายบท</div>
|
<div class="chapter-header px-4 py-2 uppercase tracking-widest text-[10px]">03. แบบทดสอบท้ายบท</div>
|
||||||
<NuxtLink to="/classroom/quiz" class="lesson-item px-4 no-underline cursor-pointer">
|
<NuxtLink to="/classroom/quiz" class="lesson-item px-4 no-underline cursor-pointer">
|
||||||
<span class="text-[12px] font-medium text-slate-400 group-hover:text-white transition-colors">ข้อสอบปลายภาค</span>
|
<span class="text-[12px] font-medium text-slate-900 dark:text-slate-200 group-hover:text-black dark:group-hover:text-white transition-colors">ข้อสอบปลายภาค</span>
|
||||||
<span class="text-xs opacity-50">📄</span>
|
<span class="text-xs opacity-50">📄</span>
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -70,12 +70,12 @@ onUnmounted(() => {
|
||||||
<!-- Header: Precise matching of the image -->
|
<!-- Header: Precise matching of the image -->
|
||||||
<header class="h-14 bg-white dark:bg-[#161b22] fixed top-0 inset-x-0 z-[100] flex items-center px-6 border-b border-slate-300 dark:border-white/5 transition-colors">
|
<header class="h-14 bg-white dark:bg-[#161b22] fixed top-0 inset-x-0 z-[100] flex items-center px-6 border-b border-slate-300 dark:border-white/5 transition-colors">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<button class="flex items-center gap-2 text-[11px] font-bold text-slate-700 dark:text-slate-400 hover:text-slate-900 dark:hover:text-white transition-colors" @click="confirmExit">
|
<button class="flex items-center gap-2 text-sm font-bold text-slate-700 dark:text-slate-400 hover:text-slate-900 dark:hover:text-white transition-colors" @click="confirmExit">
|
||||||
<span>←</span>
|
<span>←</span>
|
||||||
<span>ออกจากแบบทดสอบ</span>
|
<span>ออกจากแบบทดสอบ</span>
|
||||||
</button>
|
</button>
|
||||||
<div class="w-[1px] h-4 bg-slate-300 dark:bg-white/10 mx-4"/>
|
<div class="w-[1px] h-4 bg-slate-300 dark:bg-white/10 mx-4"/>
|
||||||
<h1 class="text-[12px] font-black text-slate-900 dark:text-white uppercase tracking-tight">แบบทดสอบท้ายบท: พื้นฐาน UX</h1>
|
<h1 class="text-base font-black text-slate-900 dark:text-white uppercase tracking-tight">แบบทดสอบท้ายบท: พื้นฐาน UX</h1>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ const saveProfile = () => {
|
||||||
<div class="profile-page max-w-4xl mx-auto px-4 py-8">
|
<div class="profile-page max-w-4xl mx-auto px-4 py-8">
|
||||||
<!-- Header: Title and Edit action -->
|
<!-- Header: Title and Edit action -->
|
||||||
<div class="flex items-center justify-between mb-10">
|
<div class="flex items-center justify-between mb-10">
|
||||||
<h1 class="text-3xl font-black text-main">โปรไฟล์ของฉัน</h1>
|
<h1 class="text-3xl font-black text-slate-900 dark:text-white">โปรไฟล์ของฉัน</h1>
|
||||||
<div class="flex items-center gap-6">
|
<div class="flex items-center gap-6">
|
||||||
<button v-if="!isEditing" class="btn-premium-edit" @click="toggleEdit(true)">
|
<button v-if="!isEditing" class="btn-premium-edit" @click="toggleEdit(true)">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
|
@ -94,8 +94,8 @@ const saveProfile = () => {
|
||||||
<div class="absolute bottom-2 right-2 bg-emerald-500 w-5 h-5 rounded-full border-4 border-[#1e293b]"/>
|
<div class="absolute bottom-2 right-2 bg-emerald-500 w-5 h-5 rounded-full border-4 border-[#1e293b]"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="pb-2">
|
<div class="pb-2">
|
||||||
<h2 class="text-3xl font-black text-slate-900 dark:text-white mb-1">{{ userData.firstName }} {{ userData.lastName }}</h2>
|
<h2 class="text-3xl font-black text-white mb-1">{{ userData.firstName }} {{ userData.lastName }}</h2>
|
||||||
<p class="text-slate-700 dark:text-slate-400 font-bold uppercase tracking-widest text-[10px]">Student ID: STU-88293</p>
|
<p class="text-slate-400 font-bold uppercase tracking-widest text-[10px]">Student ID: STU-88293</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -126,7 +126,7 @@ const saveProfile = () => {
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18" />
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18" />
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<h2 class="text-2xl font-black text-slate-900 dark:text-white">แก้ไขข้อมูลส่วนตัว</h2>
|
<h2 class="text-2xl font-black text-white">แก้ไขข้อมูลส่วนตัว</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Avatar Upload Section -->
|
<!-- Avatar Upload Section -->
|
||||||
|
|
@ -148,7 +148,7 @@ const saveProfile = () => {
|
||||||
<input ref="fileInput" type="file" class="hidden" accept="image/*" @change="handleFileUpload" >
|
<input ref="fileInput" type="file" class="hidden" accept="image/*" @change="handleFileUpload" >
|
||||||
</div>
|
</div>
|
||||||
<div class="text-center md:text-left">
|
<div class="text-center md:text-left">
|
||||||
<h3 class="font-black text-slate-900 dark:text-white mb-2">รูปโปรไฟล์ของคุณ</h3>
|
<h3 class="font-black text-white mb-2">รูปโปรไฟล์ของคุณ</h3>
|
||||||
<p class="text-xs text-slate-500 mb-4 uppercase tracking-widest font-bold">Recommended: Square image, max 2MB</p>
|
<p class="text-xs text-slate-500 mb-4 uppercase tracking-widest font-bold">Recommended: Square image, max 2MB</p>
|
||||||
<button class="btn-upload" @click="triggerUpload">อัปโหลดรูปใหม่</button>
|
<button class="btn-upload" @click="triggerUpload">อัปโหลดรูปใหม่</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -157,7 +157,7 @@ const saveProfile = () => {
|
||||||
<!-- Form Inputs -->
|
<!-- Form Inputs -->
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-10">
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-10">
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<label class="text-xs font-black uppercase tracking-widest text-slate-500">คำนำหน้า</label>
|
<label class="text-xs font-black uppercase tracking-widest text-slate-400">คำนำหน้า</label>
|
||||||
<select v-model="userData.prefix" class="premium-input w-full">
|
<select v-model="userData.prefix" class="premium-input w-full">
|
||||||
<option>นาย</option>
|
<option>นาย</option>
|
||||||
<option>นาง</option>
|
<option>นาง</option>
|
||||||
|
|
@ -166,38 +166,38 @@ const saveProfile = () => {
|
||||||
</div>
|
</div>
|
||||||
<div class="grid grid-cols-2 gap-4">
|
<div class="grid grid-cols-2 gap-4">
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<label class="text-xs font-black uppercase tracking-widest text-slate-500">ชื่อ</label>
|
<label class="text-xs font-black uppercase tracking-widest text-slate-400">ชื่อ</label>
|
||||||
<input v-model="userData.firstName" type="text" class="premium-input w-full">
|
<input v-model="userData.firstName" type="text" class="premium-input w-full">
|
||||||
</div>
|
</div>
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<label class="text-xs font-black uppercase tracking-widest text-slate-500">นามสกุล</label>
|
<label class="text-xs font-black uppercase tracking-widest text-slate-400">นามสกุล</label>
|
||||||
<input v-model="userData.lastName" type="text" class="premium-input w-full">
|
<input v-model="userData.lastName" type="text" class="premium-input w-full">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<label class="text-xs font-black uppercase tracking-widest text-slate-500">อีเมล</label>
|
<label class="text-xs font-black uppercase tracking-widest text-slate-400">อีเมล</label>
|
||||||
<input v-model="userData.email" type="email" class="premium-input w-full">
|
<input v-model="userData.email" type="email" class="premium-input w-full">
|
||||||
</div>
|
</div>
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<label class="text-xs font-black uppercase tracking-widest text-slate-500">เบอร์โทรศัพท์</label>
|
<label class="text-xs font-black uppercase tracking-widest text-slate-400">เบอร์โทรศัพท์</label>
|
||||||
<input v-model="userData.phone" type="text" class="premium-input w-full">
|
<input v-model="userData.phone" type="text" class="premium-input w-full">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Security Section -->
|
<!-- Security Section -->
|
||||||
<div class="border-t border-white/5 pt-10 mb-10">
|
<div class="border-t border-white/5 pt-10 mb-10">
|
||||||
<h3 class="text-lg font-black text-slate-900 dark:text-white mb-6">ความปลอดภัย</h3>
|
<h3 class="text-lg font-black text-white mb-6">ความปลอดภัย</h3>
|
||||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<label class="text-xs font-black uppercase tracking-widest text-slate-500">รหัสผ่านปัจจุบัน</label>
|
<label class="text-xs font-black uppercase tracking-widest text-slate-400">รหัสผ่านปัจจุบัน</label>
|
||||||
<input type="password" class="premium-input w-full" placeholder="••••••••">
|
<input type="password" class="premium-input w-full" placeholder="••••••••">
|
||||||
</div>
|
</div>
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<label class="text-xs font-black uppercase tracking-widest text-slate-500">รหัสผ่านใหม่</label>
|
<label class="text-xs font-black uppercase tracking-widest text-slate-400">รหัสผ่านใหม่</label>
|
||||||
<input type="password" class="premium-input w-full">
|
<input type="password" class="premium-input w-full">
|
||||||
</div>
|
</div>
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<label class="text-xs font-black uppercase tracking-widest text-slate-500">ยืนยันรหัสผ่านใหม่</label>
|
<label class="text-xs font-black uppercase tracking-widest text-slate-400">ยืนยันรหัสผ่านใหม่</label>
|
||||||
<input type="password" class="premium-input w-full">
|
<input type="password" class="premium-input w-full">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -225,10 +225,10 @@ const saveProfile = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-group .label {
|
.info-group .label {
|
||||||
@apply text-xs font-black uppercase tracking-widest text-slate-700 dark:text-slate-500 block mb-2;
|
@apply text-xs font-black uppercase tracking-widest text-slate-400 block mb-2;
|
||||||
}
|
}
|
||||||
.info-group .value {
|
.info-group .value {
|
||||||
@apply text-lg font-bold text-slate-900 dark:text-slate-200;
|
@apply text-lg font-bold text-white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.premium-input {
|
.premium-input {
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
sans: ['Inter', 'Prompt', 'Sarabun', 'sans-serif'],
|
sans: ['Prompt', 'sans-serif'],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue