change new layout

This commit is contained in:
2025-08-25 21:13:33 +07:00
parent 963f460e8a
commit 136c513630
9 changed files with 428 additions and 362 deletions
+5 -3
View File
@@ -7,12 +7,14 @@ import WebThemeToggle from './web-theme-toggle.vue';
<footer>
<div class="article">
<section class="web-section">
<h3 class="text-3xl md:text-5xl mb-4">Techit's Home /// thawia.ng</h3>
<h3 class="text-2xl md:text-3xl mb-4 font-light">Techit's Home /// thawia.ng</h3>
<p>
<small>
Copyright &copy; Techit Thawiang 2025 (2568). All rights reserved.<br>
PGP/GPG Key: <code style="font-size: 12px;"><a href="/portal/f/Techit Thawiang_0xE649CED321557334_public.asc">4116 33BE 1B4A 19D4 8D77 9ADE E649 CED3 2155 7334</a></code><br>
Powered by <a href="https://dailitation.xyz">dailitation.xyz</a>, <a href="https://github.com/TechitWinner/web">Source Code</a>.
</small><br/>
Powered by <a class="link" href="https://dailitation.xyz">dailitation.xyz</a>, <a class="link" href="https://github.com/TechitWinner/web">Source Code</a>.
</small>
</p>
<WebThemeToggle/>
</section>
</div>
+15 -21
View File
@@ -1,35 +1,32 @@
<template>
<header class="web-header">
<header class="web-header web-header-bg web-header-emit-shadow-when-top">
<section class="web-heading">
<NuxtLink href="/" class="web-heading-left-section hover:bg-(--ui-text)/5 active:bg-(--ui-text)/10">
<NuxtLink href="/" @click="closeMobileHamburger" class="web-heading-left-section text-(--ui-text) hover:text-primary">
<div class="flex items-center h-full bg-[#0066FF]">
<img width="36" height="36"src="/favicon.ico">
</div>
<p class="web-nav-title mx-2 text-(--ui-text)">thawia.ng</p>
<p title="thawia.ng, Go home" class="web-nav-title mx-2">thawia.ng/</p>
</NuxtLink>
<div class="web-heading-right-section">
<nav class="nav-links">
<ul class="nav-wrapper">
<li class="nav-link">
<NuxtLink href="/">Home</NuxtLink>
<NuxtLink href="/posts">/posts</NuxtLink>
</li>
<!-- <li class="nav-link">
<NuxtLink href="/blog">Blog</NuxtLink>
</li>
<li class="nav-link">
<NuxtLink href="/projects">Projects</NuxtLink>
</li>
<li class="nav-link">
<NuxtLink href="/about">About</NuxtLink>
</li> -->
<li class="nav-link">
<NuxtLink href="/contact">Contact</NuxtLink>
<NuxtLink title="Contact" href="/contact">/contact</NuxtLink>
</li>
<li class="nav-link">
<NuxtLink href="/fonts">Fonts</NuxtLink>
<NuxtLink title="Fonts" href="/fonts">/fonts</NuxtLink>
</li>
<li class="nav-link">
<NuxtLink href="/collections">Collections</NuxtLink>
<NuxtLink title="Collection" href="/collections">/collections</NuxtLink>
</li>
</ul>
</nav>
@@ -41,25 +38,19 @@
<nav v-if="mobileHamburger" class="hamburger-menu">
<ul class="nav-wrapper">
<li class="nav-link">
<NuxtLink @click="toggleMobileHamburger" href="/">Home</NuxtLink>
</li>
<!-- <li class="nav-link">
<NuxtLink href="/blog">Blog</NuxtLink>
<NuxtLink aria-label="Go home" @click="closeMobileHamburger" href="/">/</NuxtLink>
</li>
<li class="nav-link">
<NuxtLink href="/projects">Projects</NuxtLink>
<NuxtLink aria-label="Go to posts" @click="closeMobileHamburger" href="/posts">/posts</NuxtLink>
</li>
<li class="nav-link">
<NuxtLink href="/about">About</NuxtLink>
</li>-->
<li class="nav-link">
<NuxtLink @click="toggleMobileHamburger" href="/contact">Contact</NuxtLink>
<NuxtLink aria-label="Go to contact" @click="closeMobileHamburger" href="/contact">/contact</NuxtLink>
</li>
<li class="nav-link">
<NuxtLink @click="toggleMobileHamburger" href="/fonts">Fonts</NuxtLink>
<NuxtLink aria-label="Go to fonts" @click="closeMobileHamburger" href="/fonts">/fonts</NuxtLink>
</li>
<li class="nav-link">
<NuxtLink @click="toggleMobileHamburger" href="/collections">Collections</NuxtLink>
<NuxtLink aria-label="Go to collections" @click="closeMobileHamburger" href="/collections">/collections</NuxtLink>
</li>
</ul>
</nav>
@@ -72,4 +63,7 @@ const mobileHamburger = ref(false);
function toggleMobileHamburger() {
mobileHamburger.value = !mobileHamburger.value
}
function closeMobileHamburger() {
mobileHamburger.value = false
}
</script>
+2 -6
View File
@@ -1,9 +1,5 @@
<script setup>
const colorMode = useColorMode()
defineProps({
isCompact: Boolean,
size: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
})
const isDark = computed({
get() {
return colorMode.value === 'dark'
@@ -16,10 +12,10 @@ const isDark = computed({
<template>
<ClientOnly v-if="!colorMode?.forced">
<button @click="isDark = !isDark" class="btn btn-neutral">Toggle Theme</button>
<button @click="isDark = !isDark" class="btn btn-sm btn-neutral">Toggle Theme</button>
<template #fallback>
<button class="btn btn-neutral">Loading...</button>
<button class="btn btn-sm btn-neutral">Loading...</button>
</template>
</ClientOnly>
</template>
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<main>
<article class="article">
<section class="web-hero" aria-labelledby="hero" aria-describedby="hero-desc">
<section class="web-hero web-hero-bg" aria-labelledby="hero" aria-describedby="hero-desc">
<h1 id="hero" class="font-hero">Techit's Collection</h1>
<p id="hero-desc" class="font-hero-desc">Techit's personal collection of various interesting, trending media/materials.</p>
</section>
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<main>
<article class="article">
<section class="web-hero" aria-labelledby="hero" aria-describedby="hero-desc">
<section class="web-hero web-hero-bg" aria-labelledby="hero" aria-describedby="hero-desc">
<h1 id="hero" class="font-hero">Contact Techit</h1>
<p id="hero-desc" class="font-hero-desc">You can reach me in countless ways Im on basically every social media app out there.</p>
</section>
+91 -23
View File
@@ -1,40 +1,108 @@
<template>
<main>
<article class="article">
<section class="web-hero" aria-labelledby="hero" aria-describedby="hero-desc">
<section class="web-hero web-hero-bg" aria-labelledby="hero" aria-describedby="hero-desc">
<h1 id="hero" class="font-hero">Fonts</h1>
<p id="hero-desc" class="font-hero-desc">Welcome to /fonts! This page were created to list all fonts I have hosted it here, so you can use it too.</p>
</section>
<section class="web-section" aria-labelledby="roboto" aria-describedby="roboto-desc">
<h3 id="roboto" class="web-title">Roboto Family</h3>
<p id="roboto-desc">All Roboto Family hosted here, here's the CSS files</p>
<ul>
<li><a class="link" href="/fonts/roboto/roboto.css">Roboto</a></li>
<li><a class="link" href="/fonts/roboto/serif/serif.css">Roboto Serif</a></li>
<li><a class="link" href="/fonts/roboto/mono/mono.css">Roboto Mono</a></li>
</ul>
</section>
<section class="web-section" aria-labelledby="noto" aria-describedby="noto-desc">
<h3 id="noto" class="web-title">Noto Sans</h3>
<p id="noto-desc">Noto Sans, only Thai is hosted here right now and here's the CSS files</p>
<ul>
<li><a class="link" href="/fonts/noto/thai/thai.css">Noto Sans Thai</a></li>
</ul>
</section>
<section class="web-section" aria-labelledby="tiktok" aria-describedby="tiktok-desc">
<h3 id="tiktok" class="web-title">TikTok Sans</h3>
<p id="tiktok-desc">TikTok Sans from TikTok. Here's the CSS files</p>
<ul>
<li><a class="link" href="/fonts/tiktoksans/tiktoksans.css">TikTok Sans</a></li>
</ul>
<section v-for="family in fonts" class="web-section" :aria-labelledby="family.id" aria-describedby="family.desc">
<h3 id="noto" class="web-title">{{ family.family }}</h3>
<p id="noto-desc">{{ family.desc }}</p>
<div class="font-cards">
<a v-for="font in family.childrens" :disabled="font.disabled" :href="font.css" class="font-card">
<div class="font-card-content">
<h3>{{ font.name }}</h3>
<p>{{ font.css }}</p>
</div>
</a>
</div>
</section>
</article>
</main>
</template>
<script setup>
const fonts = [
{
id: "roboto",
family: "Roboto Family",
desc: "Roboto, a neo-grotesque sans-serif typeface family developed by Google as the system font for its mobile operating system Android.",
childrens: [
{
id: "roboto",
name: "Roboto",
css: "/fonts/roboto/roboto.css"
},
{
id: "roboto-mono",
name: "Roboto Mono",
css: "/fonts/roboto-mono/roboto-mono.css"
},
{
id: "roboto-serif",
name: "Roboto Serif",
css: "/fonts/roboto-serif/roboto-serif.css"
}
]
},
{
id: "inter",
family: "Inter Family",
desc: "Inter, a typeface designed for computer screens. It features a tall x-height to aid in readability of mixed-case and lower-case text.",
childrens: [
{
id: "inter",
name: "Inter",
css: "/fonts/inter/inter.css"
}
]
},
{
id: "noto",
family: "Noto Family",
desc: "Noto Sans, a free font family from Google that aims to support all languages with a harmonious look and feel.",
childrens: [
{
id: "noto-sans",
name: "Noto Sans",
css: "/fonts/noto-sans/noto-sans.css"
},
{
id: "noto-sans-mono",
name: "Noto Sans Mono",
css: "/fonts/noto-sans-mono/noto-sans-mono.css"
},
{
id: "noto-sans-thai",
name: "Noto Sans Thai",
css: "/fonts/noto-sans-thai/noto-sans-thai.css"
},
{
disabled: true,
id: "noto-sans-thai-looped",
name: "Noto Sans Thai Looped",
css: "/fonts/noto-sans-thai-looped/noto-sans-thai-looped.css"
}
]
},
{
id: "tiktok-sans",
family: "TikTok Sans",
desc: "TikTok Sans, the official typeface of TikTok, designed to reflect the brand's dynamic and creative spirit.",
childrens: [
{
id: "tiktok-sans",
name: "TikTok Sans",
css: "/fonts/tiktok-sans/tiktok-sans.css"
}
]
}
]
const config = useRuntimeConfig();
const TITLE = "Fonts"
const DESC = "Fonts hosted on thawia.ng"
const baseUrl = config.public.baseUrl
useHead({
title: TITLE,
+15 -9
View File
@@ -1,37 +1,43 @@
<template>
<main>
<article class="article">
<section class="web-hero" aria-labelledby="hero" aria-describedby="what-does-he-do?">
<img width="240" height="240" class="mb-6" src="https://thawia.ng/portal/f/assets/profile/techit/techit2025_student-cropped.jpg">
<section class="web-hero web-hero-bg" aria-labelledby="hero" aria-describedby="what-does-he-do?">
<img width="240" height="240" class="mb-6" src="https://thawia.ng/portal/f/assets/profile/techit/sumo-clipart.png" alt="Techit Thawiang's avatar.">
<h1 id="hero" class="font-hero">Techit Thawiang</h1>
<p id="what-does-he-do?" class="font-hero-desc">A 10th grader who's exploring computer science.</p>
<p id="what-does-he-do?" class="font-hero-desc">A 10th grader <span class="text-pink-500">hobbyist developer</span>, <span class="text-green-600">a math nerd</span>, <span class="text-blue-500">self-hoster</span> and a KDE user who's exploring computer science.</p>
</section>
<section class="web-section" aria-labelledby="about-me" aria-describedby="about-me-paragraph-1">
<!-- <h2 class="web-title" id="about-me"><NuxtLink href="/about" title="Navigate to about me page." class="link link-no-underline">About Me <span aria-hidden="true" class="inline-icon">→</span></NuxtLink></h2> -->
<h2 class="web-title" id="about-me">About Me</h2>
<p id="about-me-paragraph-1">I'm a 15 years old 10th grader at Ko Pho Tuay Ngam Wittaya School. In my free time, I usually spend my time playing games or learning more about software engineering.</p>
<p id="about-me-paragraph-2">In the future, I dream of having my own tech company, being a network engineer or being a civil engineer.</p>
<h2 class="web-title" id="about-me">Who am I?</h2>
<p id="about-me-paragraph-1">My name is Techit Thawiang, aka <u>TechitWinner</u>. I'm a 15 years old 10th grader at Ko Pho Tuay Ngam Wittaya School. In my free time, I usually spend my time playing video games or learning more about software engineering.</p>
<p id="about-me-paragraph-2">In the future, I dream of having my own tech company, being a network engineer or a software engineer.</p>
</section>
<section class="web-section" aria-labelledby="projects" aria-describedby="projects-paragraph-1">
<!-- <h2 class="web-title" id="projects"><NuxtLink href="/projects" title="Navigate to projects page." class="link link-no-underline">Projects <span aria-hidden="true" class="inline-icon"></span></NuxtLink></h2> -->
<h2 class="web-title" id="projects">Projects</h2>
<p id="projects-paragraph-1">As I said above, I usually spend my free time learning more about software engineering. This includes server administration for <a class="link" href="https://dailitation.xyz">dailitation.xyz</a>. Over time, small and large projects have been born and have died.</p>
<p id="projects-paragraph-1">As I said above, I usually spend my free time learning more about software engineering. This includes server administration for <a class="link" href="https://dailitation.xyz">dailitation.xyz</a>. Over time, small and large projects have born and died.</p>
<p id="projects-paragraph-2">Let's go take a look of my projects collection!</p>
<div class="grid grid-cols-1 md:grid-cols-3 gap-2">
<div class="project-cards">
<a target="_blank" href="https://github.com/TechitWinner/warehouse" class="project-card">
<img :src="baseUrl + '/portal/f/assets/warehouse.jpg'">
<div class="project-card-content">
<h3>Warehouse</h3>
<p title="I planned it to be my API for personal website and other stuff; written in Rust and Axum.">I planned it to be my API for personal website and other stuff; written in Rust and Axum.</p>
</div>
</a>
<a target="_blank" href="https://github.com/TechitWinner/web" class="project-card">
<img :src="baseUrl + '/portal/f/assets/web.png'">
<div class="project-card-content">
<h3>Web</h3>
<p title="Nothing much, just this website written in Nuxt (Vue) and some cool CSS.">Nothing much, just this website written in Nuxt (Vue) and some cool CSS.</p>
</div>
</a>
<a target="_blank" href="https://github.com/TechitWinner/coinbag-pro" class="project-card">
<img src="https://opengraph.githubassets.com/79ca3021ce93e3d277062d399d623842564bc2f9407600e5b6102036f01e8277/TechitWinner/coinbag-pro">
<div class="project-card-content">
<h3>Coinbag Pro</h3>
<p title="A handwriting typeface, created by me but it is a dead project now.">A handwriting typeface, created by me but it is a dead project now.</p>
</div>
</a>
</div>
</section>
@@ -41,9 +47,9 @@
<script setup>
const config = useRuntimeConfig();
const baseUrl = config.public.baseUrl
const TITLE = "Home"
const DESC = "Welcome to thawia.ng, a Techit's website."
const baseUrl = config.public.baseUrl
useHead({
title: TITLE,
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<main>
<article class="article">
<section class="web-hero" aria-labelledby="hero" aria-describedby="hero-desc">
<section class="web-hero web-hero-bg" aria-labelledby="hero" aria-describedby="hero-desc">
<h1 id="hero" class="font-hero">Portal</h1>
<p id="hero-desc" class="font-hero-desc">Take a portal to travel to various dimensions.</p>
</section>