From 83a85ddcbfa99a5b61d629789288f81c69cbb37b Mon Sep 17 00:00:00 2001 From: HAL <68320771+HALQME@users.noreply.github.com> Date: Tue, 7 Apr 2026 22:14:50 +0900 Subject: [PATCH 1/4] remove unused --- client/src/components/Head.astro | 4 ---- 1 file changed, 4 deletions(-) diff --git a/client/src/components/Head.astro b/client/src/components/Head.astro index fa63993..bd6565c 100644 --- a/client/src/components/Head.astro +++ b/client/src/components/Head.astro @@ -36,10 +36,6 @@ const isDev = import.meta.env.DEV; - {Astro.props.title} | 大阪公立大学合氣道部 From 0c40872f411578001599b44ada3e82594ed4f645 Mon Sep 17 00:00:00 2001 From: HAL <68320771+HALQME@users.noreply.github.com> Date: Tue, 7 Apr 2026 22:21:32 +0900 Subject: [PATCH 2/4] Fix canonical URL and add sidebar accessibility attributes --- client/src/components/Head.astro | 3 ++- client/src/components/Sidebar.astro | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/client/src/components/Head.astro b/client/src/components/Head.astro index bd6565c..f666c40 100644 --- a/client/src/components/Head.astro +++ b/client/src/components/Head.astro @@ -7,6 +7,7 @@ interface Props { } const isDev = import.meta.env.DEV; +const path = Astro.url.pathname --- <head> @@ -23,7 +24,7 @@ const isDev = import.meta.env.DEV; ) } <link rel="sitemap" href="/sitemap-index.xml" /> - <link rel="canonical" href="https://omu-aikido.com" /> + <link rel="canonical" href={`https://omu-aikido.com${path}`} /> <link rel="icon" type="image/svg" href="/favicon.svg" /> <link rel="apple-touch-icon" diff --git a/client/src/components/Sidebar.astro b/client/src/components/Sidebar.astro index 3dc1002..d76493f 100644 --- a/client/src/components/Sidebar.astro +++ b/client/src/components/Sidebar.astro @@ -7,6 +7,7 @@ const currentPath = Astro.url.pathname; <button id="open-sidebar" class="i-ri:menu-line text-2xl transition hover:(cursor-pointer i-ri:menu-unfold-4-line text-brand-600)" + aria-label="Open Sidebar" > </button> @@ -17,8 +18,10 @@ const currentPath = Astro.url.pathname; <div class="min-h-100dvh m-4 flex flex-col"> <button id="close-sidebar" - class="i-ri:close-line mb-2 text-3xl transition hover:(i-ri:close-circle-line text-brand-600 cursor-pointer)" - ml-auto></button> + class="i-ri:close-line mb-2 ml-auto text-3xl transition hover:(i-ri:close-circle-line text-brand-600 cursor-pointer)" + aria-label="Close Sidebar" + > + </button> <nav class="mx-2 flex-1 space-y-1"> { From df07859b17c216f483810163126a345b6d9a3713 Mon Sep 17 00:00:00 2001 From: HAL <68320771+HALQME@users.noreply.github.com> Date: Wed, 8 Apr 2026 14:09:46 +0900 Subject: [PATCH 3/4] Refactor homepage hero layout and clean up unused CSS styles --- client/src/components/Head.astro | 2 +- client/src/pages/index.astro | 36 ++++------ client/src/styles/global.css | 114 ++----------------------------- 3 files changed, 21 insertions(+), 131 deletions(-) diff --git a/client/src/components/Head.astro b/client/src/components/Head.astro index f666c40..9f0be2b 100644 --- a/client/src/components/Head.astro +++ b/client/src/components/Head.astro @@ -7,7 +7,7 @@ interface Props { } const isDev = import.meta.env.DEV; -const path = Astro.url.pathname +const path = Astro.url.pathname; --- <head> diff --git a/client/src/pages/index.astro b/client/src/pages/index.astro index 948fcc7..76df780 100644 --- a/client/src/pages/index.astro +++ b/client/src/pages/index.astro @@ -5,28 +5,22 @@ import Layout from "@/layouts/Layout.astro"; --- <Layout title="トップ" description="大阪公立大学合氣道部の公式ホームページです"> - <section class="hero-section" transition:name="home-hero"> - <div class="hero-content"> - <div class="hero-main"> - <h1 class="hero-title">大阪公立大学<br class="sm:hidden" />合氣道部</h1> - <p class="hero-description"> - 大阪公立大学合氣道部は、森之宮キャンパス・中百舌鳥キャンパス・杉本キャンパスで活動する、体育会所属の合気道団体です。 - </p> - <a href="/about" class="btn-primary hero-cta">もっと知る</a> - </div> - <div class="hero-accent-bg" aria-hidden="true"></div> - </div> + <section class="mt-16 container-page" transition:name="home-hero"> + <h1 class="text-heading text-4xl font-semibold"> + 大阪公立大学<br class="sm:hidden" />合氣道部 + </h1> + <p class="text-body mt-3 max-w-60% leading-relaxed"> + 大阪公立大学合氣道部は、森之宮キャンパス・中百舌鳥キャンパス・杉本キャンパスで活動する、体育会所属の合気道団体です。 + </p> + <a href="/about" class="btn-primary my-8">もっとくわしく</a> + <div class="hero-accent-bg" aria-hidden="true"></div> </section> <section class="container-page pt-0"> - <div class="mb-4"> - <a href="/about/aikido" class="inline-flex"> - <h2 class="text-heading text-2xl font-bold">合気道を知る</h2> - </a> - </div> <div class=""> - <div class="flex"> - <div> - <h3 class="text-heading text-xl font-semibold">合気道とは</h3> + <div class="grid grid-cols-4 gap-24"> + <div un-col-span-1/> + <div un-col-span-3> + <h2 class="text-heading text-2xl font-semibold">合気道とは</h2> <p class="text-body mt-3 leading-relaxed"> 合気道は、開祖・植芝盛平翁が創始した現代武道です。<br />相手と強弱を競わず、入身と転換の体捌きと呼吸力から生まれる技によって心身の錬成図ります。 @@ -43,8 +37,8 @@ import Layout from "@/layouts/Layout.astro"; </div> </div> </section> - <section class="container-page pt-0"> - <h2 class="text-heading text-2xl font-bold mb-6">探索する</h2> + <section class="container-page mt-4"> + <h2 class="text-heading text-2xl font-bold mb-4">探索する</h2> <SiteGuideBento /> </section> </Layout> diff --git a/client/src/styles/global.css b/client/src/styles/global.css index 7a8d48b..3ca2347 100644 --- a/client/src/styles/global.css +++ b/client/src/styles/global.css @@ -1,23 +1,3 @@ -/* Typography & Font Loading */ -body { - font-family: "IBM Plex Sans", "Noto Sans JP", system-ui, sans-serif; - font-weight: 400; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: optimizeLegibility; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: "IBM Plex Sans", "Noto Sans JP", system-ui, sans-serif; - font-weight: 700; - letter-spacing: -0.01em; -} - hr { --at-apply: "mt-6 mb-3 w-full border-t"; } @@ -76,14 +56,6 @@ hr { animation: fade-in 0.35s cubic-bezier(0, 0, 0.2, 1) forwards; } -/* Hero Section */ -.hero-section { - position: relative; - margin: 0 -1rem 3rem -1rem; - padding: 4rem 1rem 5rem; - overflow: hidden; -} - .hero-section::before { content: ""; position: absolute; @@ -99,64 +71,9 @@ hr { ); } -.hero-content { - position: relative; - max-width: 56rem; - margin: 0 auto; - display: grid; - grid-template-columns: 1fr; - gap: 2rem; - align-items: center; -} - -.hero-main { - display: flex; - flex-direction: column; - gap: 1.5rem; -} - -.hero-title { - font-family: "IBM Plex Sans", "Noto Sans JP", system-ui, sans-serif; - font-size: clamp(2rem, 5vw, 3.5rem); - font-weight: 700; - line-height: 1.2; - color: rgb(24, 24, 27); - letter-spacing: -0.02em; -} - -.hero-subtitle { - font-size: 1.2rem; - font-weight: 600; - color: rgb(63, 63, 70); - display: flex; - align-items: center; - gap: 0.6rem; -} - -.hero-accent { - background: linear-gradient(135deg, rgb(37, 99, 235), rgb(59, 130, 246)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; -} - -.hero-description { - font-family: "IBM Plex Sans", "Noto Sans JP", system-ui, sans-serif; - font-size: 1rem; - font-weight: 400; - line-height: 1.7; - color: rgb(87, 87, 90); - max-width: 42rem; -} - -.hero-cta { - align-self: flex-start; -} - .hero-accent-bg { position: absolute; top: -30%; - right: -15%; width: 500px; height: 500px; border-radius: 50%; @@ -166,19 +83,13 @@ hr { transparent 70% ); pointer-events: none; + overflow: hidden; } -@media (prefers-color-scheme: dark) { - .hero-title { - color: rgb(244, 244, 245); - } - - .hero-subtitle { - color: rgb(212, 212, 216); - } - - .hero-description { - color: rgb(161, 161, 170); +@media (max-width: 640px) { + .hero-accent-bg { + width: min(400px, 70vw); + height: min(400px, 70vw); } } @@ -187,18 +98,3 @@ hr { animation: none; } } - -@media (max-width: 640px) { - .hero-section { - padding: 2.5rem 1rem 3rem; - margin-bottom: 2rem; - } - - .hero-title { - font-size: 1.875rem; - } - - .hero-subtitle { - font-size: 1rem; - } -} From ac35c75e5bb141ccf411d1d72fa5d5c11f561c9d Mon Sep 17 00:00:00 2001 From: HAL <68320771+HALQME@users.noreply.github.com> Date: Thu, 9 Apr 2026 09:39:43 +0900 Subject: [PATCH 4/4] pdate page content --- client/public/_headers | 2 +- client/src/components/Footer.astro | 10 +- client/src/components/Head.astro | 8 -- client/src/components/SiteGuideBento.astro | 131 +++------------------ client/src/pages/about/index.mdx | 15 ++- client/src/pages/about/links.mdx | 4 +- client/src/pages/calendar/index.astro | 24 ++-- client/src/pages/index.astro | 38 +++--- 8 files changed, 64 insertions(+), 168 deletions(-) diff --git a/client/public/_headers b/client/public/_headers index 80c7e75..1e86fe6 100644 --- a/client/public/_headers +++ b/client/public/_headers @@ -1,2 +1,2 @@ /* - Content-Security-Policy: script-src 'self' 'unsafe-eval' 'unsafe-inline' https://challenges.cloudflare.com https://*.cloudflare.com https://static.cloudflareinsights.com; connect-src https://omu-aikido.com https://challenges.cloudflare.com https://*.cloudflare.com https://static.cloudflareinsights.com; frame-src https://challenges.cloudflare.com https://*.cloudflare.com; worker-src https://static.cloudflareinsights.com; + Content-Security-Policy: script-src 'self' 'unsafe-eval' 'unsafe-inline' https://challenges.cloudflare.com https://*.cloudflare.com https://static.cloudflareinsights.com; connect-src https://omu-aikido.com https://challenges.cloudflare.com https://*.cloudflare.com https://static.cloudflareinsights.com; frame-src https://challenges.cloudflare.com https://*.cloudflare.com https://www.google.com; worker-src https://static.cloudflareinsights.com; diff --git a/client/src/components/Footer.astro b/client/src/components/Footer.astro index aace42f..df7b2ea 100644 --- a/client/src/components/Footer.astro +++ b/client/src/components/Footer.astro @@ -2,7 +2,7 @@ --- -<footer class="container-page pt-2 text-center text-sm text-body"> +<footer class="container-page mt-4 text-center text-sm text-body"> <p class="leading-relaxed"> <span>© OMU Aikido Club All Rights Reserved.</span> <br /> @@ -15,11 +15,13 @@ <a href="/terms-of-service" un-link> 利用規約 </a> </p> - <div class="mx-auto mt-4 flex max-w-60 items-center justify-between text-2xl"> + <div class="mx-auto mt-8 flex max-w-60 items-center justify-between text-2xl"> <a href="https://twitter.com/fudaiaiki" aria-label="旧府大合氣道部 Twitter" class="transition hover:text-brand-600" + target="_blank" + rel="noopener noreferrer" un-i-ri:twitter-fill > 旧府大Twitter @@ -28,6 +30,8 @@ href="https://instagram.com/hamudaiaikidoubu" aria-label="Instagram" class="transition hover:text-brand-600" + target="_blank" + rel="noopener noreferrer" un-i-ri:instagram-fill > Instagram @@ -36,6 +40,8 @@ href="https://github.com/omu-aikido" aria-label="GitHub" class="transition hover:text-brand-600" + target="_blank" + rel="noopener noreferrer" un-i-ri:github-fill > GitHub diff --git a/client/src/components/Head.astro b/client/src/components/Head.astro index 9f0be2b..42359a1 100644 --- a/client/src/components/Head.astro +++ b/client/src/components/Head.astro @@ -15,14 +15,6 @@ const path = Astro.url.pathname; <meta name="viewport" content="width=device-width" /> <meta name="generator" content={Astro.generator} /> <meta name="description" content={Astro.props.description} /> - { - isDev && ( - <meta - http-equiv="Content-Security-Policy" - content="script-src 'self' 'unsafe-eval' 'unsafe-inline' https://challenges.cloudflare.com https://*.cloudflare.com https://static.cloudflareinsights.com; connect-src 'self' http://localhost:* https://localhost:* https://challenges.cloudflare.com https://*.cloudflare.com https://static.cloudflareinsights.com; frame-src https://challenges.cloudflare.com https://*.cloudflare.com; worker-src https://static.cloudflareinsights.com;" - /> - ) - } <link rel="sitemap" href="/sitemap-index.xml" /> <link rel="canonical" href={`https://omu-aikido.com${path}`} /> <link rel="icon" type="image/svg" href="/favicon.svg" /> diff --git a/client/src/components/SiteGuideBento.astro b/client/src/components/SiteGuideBento.astro index 3549cc5..dee60b0 100644 --- a/client/src/components/SiteGuideBento.astro +++ b/client/src/components/SiteGuideBento.astro @@ -4,21 +4,27 @@ import { navlinks } from "@/lib/navigation"; const mainNav = navlinks[0]?.children || []; --- -<nav class="site-guide"> +<nav class="grid gap-8 p-0 grid-cols-2 md:grid-cols-3 lg:grid-cols-4"> { mainNav.map((parent) => ( - <div> - <a href={parent.path} class="guide-card-header guide-card-link"> - <span class="guide-card-title">{parent.title}</span> - <span class="guide-card-arrow" aria-hidden="true"> + <div class="flex flex-col gap-3"> + <a href={parent.path} class="flex-inline items-center gap-2"> + <span class="text-lg font-bol guide-card-link">{parent.title}</span> + <span + class="text-xl text-blue-600 opacity-50 transition-opacity duration-150" + aria-hidden="true" + > → </span> </a> - {parent.children && parent.children.length > 0 && ( - <ul class="guide-card-links"> + {parent.children?.length && ( + <ul class="flex flex-col gap-1 list-none p-0 ml-1em"> {parent.children.map((child) => ( - <li class="pl-4"> - <a href={child.path} class="guide-card-link"> + <li> + <a + href={child.path} + class="inline-flex items-center gap-1 text-base font-medium guide-card-link" + > {child.title} </a> </li> @@ -31,81 +37,13 @@ const mainNav = navlinks[0]?.children || []; </nav> <style> - .site-guide { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 2rem; - padding: 0; - } - - .guide-card { - display: flex; - flex-direction: column; - gap: 0.75rem; - padding: 0; - border: none; - background: transparent; - } - - .guide-card-header { - display: flex; - align-items: center; - justify-content: flex-start; - gap: 0.5rem; - text-decoration: none; - padding: 0; - } - - .guide-card-title { - font-size: 1.125rem; - font-weight: 700; - color: rgb(24, 24, 27); - transition: color 0.15s ease; - } - - .guide-card:hover .guide-card-title { - color: rgb(37, 99, 235); - } - - .guide-card-arrow { - font-size: 1.25rem; - color: rgb(37, 99, 235); - opacity: 0.5; - transition: - opacity 0.15s ease, - transform 0.15s ease; - } - - .guide-card:hover .guide-card-arrow { - opacity: 1; - } - - .guide-card-links { - list-style: none; - padding: 0; - margin: 0; - display: flex; - flex-direction: column; - gap: 0.4rem; - } - .guide-card-link { - display: inline-flex; - align-items: center; - gap: 0.4rem; - font-size: 1rem; - font-weight: 500; - color: rgb(63, 63, 70); text-decoration: none; padding: 0.25rem 0; transition: color 0.15s ease; position: relative; } - .guide-card-link:hover { - color: rgb(37, 99, 235); - } - .guide-card-link::after { content: ""; position: absolute; @@ -120,43 +58,4 @@ const mainNav = navlinks[0]?.children || []; .guide-card-link:hover::after { width: 100%; } - - @media (prefers-color-scheme: dark) { - .guide-card-title { - color: rgb(244, 244, 245); - } - - .guide-card:hover .guide-card-title { - color: rgb(147, 197, 253); - } - - .guide-card-link { - color: rgb(212, 212, 216); - } - - .guide-card-link:hover { - color: rgb(147, 197, 253); - } - - .guide-card-link::after { - background: rgb(147, 197, 253); - } - } - - @media (prefers-reduced-motion: reduce) { - .guide-card-arrow, - .guide-card-link { - transition: none; - } - - .guide-card-link::after { - transition: none; - } - } - - @media (max-width: 640px) { - .site-guide { - grid-template-columns: 1fr; - } - } </style> diff --git a/client/src/pages/about/index.mdx b/client/src/pages/about/index.mdx index 9260a4d..e84cb0b 100644 --- a/client/src/pages/about/index.mdx +++ b/client/src/pages/about/index.mdx @@ -39,7 +39,7 @@ import InfoList from "../../components/InfoList.astro"; ### 年間行事予定 -<section class="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3"> +<section class="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 my-2"> <article class="rounded-md border border-zinc-200/70 bg-zinc-50 p-4 dark:(border-zinc-700/70 bg-zinc-800/40)"> <p class="text-sm font-semibold text-muted">4月</p> <p class="text-body mt-2">ふたば祭教室企画出店</p> @@ -101,10 +101,11 @@ import InfoList from "../../components/InfoList.astro"; { label: "団体種別", value: "公認団体" }, { label: "活動分類", value: "武道/スポーツ" }, { - label: "構成員数", + label: "活動場所", value: [ - "31名(1年生:12名、2年生:9名、3年生:5名、4年生:0名、大学院生:5名)", - "※2025年6月現在", + "中百舌鳥キャンパス 武道場", + "杉本キャンパス 新武道場", + "森之宮キャンパス マルチユースルーム", ], }, { @@ -120,8 +121,10 @@ import InfoList from "../../components/InfoList.astro"; { label: "2年生以上の受入", value: "歓迎" }, { label: "兼部・兼サー", - value: - "可能です。白鷺祭実行委員会、中百舌鳥新歓実行委員会などに参加している部員もいます。兼部・兼サーをして、予定が合わない場合は無理に合氣道の稽古に参加しなくても構いません。", + value: [ + "可能です。白鷺祭実行委員会、中百舌鳥新歓実行委員会などに参加している部員もいます。", + "ただし、昇級・昇段には一定以上の稽古の参加、道場のイベントへの参加を求めます。", + ], }, { label: "バイトとの両立", value: "可能" }, { label: "入部可能時期", value: "通年可能" }, diff --git a/client/src/pages/about/links.mdx b/client/src/pages/about/links.mdx index 389a71b..f6fac82 100644 --- a/client/src/pages/about/links.mdx +++ b/client/src/pages/about/links.mdx @@ -1,10 +1,10 @@ --- layout: ../../layouts/Markdown.astro -title: リンク集 +title: 関係団体など description: 大阪公立大学合氣道部がお世話になっている方々の紹介ページ --- -## リンク集 +## 関係団体など [**天之武産合氣塾道場**](https://amenotakemusu.jimdofree.com) diff --git a/client/src/pages/calendar/index.astro b/client/src/pages/calendar/index.astro index dd4bd55..ba90172 100644 --- a/client/src/pages/calendar/index.astro +++ b/client/src/pages/calendar/index.astro @@ -19,18 +19,18 @@ import Layout from "@/layouts/Layout.astro"; id="google-calendar-navigation" class="card-base mt-4 flex items-start gap-3" > - <div class="text-body flex-inline items-center gap-2"> - <div class="i-ri:information-2-line mt-0.5 h-10 w-10s text-brand-600"> - </div> - <a - href="https://calendar.google.com/calendar/embed?src=aikido.omu%40gmail.com" - target="_blank" - rel="noopener noreferrer" - class="link" - > - Googleカレンダー - </a> - では過去の稽古や1ヶ月以上先の稽古予定も確認できます。 + <div class="text-body inline-flex items-center gap-2"> + <span> + <a + href="https://calendar.google.com/calendar/embed?src=aikido.omu%40gmail.com" + target="_blank" + rel="noopener noreferrer" + un-link + > + Googleカレンダー + </a> + では過去の稽古や1ヶ月以上先の稽古予定も確認できます。 + </span> </div> </div> </section> diff --git a/client/src/pages/index.astro b/client/src/pages/index.astro index 76df780..ffd2259 100644 --- a/client/src/pages/index.astro +++ b/client/src/pages/index.astro @@ -12,30 +12,26 @@ import Layout from "@/layouts/Layout.astro"; <p class="text-body mt-3 max-w-60% leading-relaxed"> 大阪公立大学合氣道部は、森之宮キャンパス・中百舌鳥キャンパス・杉本キャンパスで活動する、体育会所属の合気道団体です。 </p> - <a href="/about" class="btn-primary my-8">もっとくわしく</a> + <a href="/about" class="btn-primary my-8">活動について→</a> <div class="hero-accent-bg" aria-hidden="true"></div> </section> - <section class="container-page pt-0"> - <div class=""> - <div class="grid grid-cols-4 gap-24"> - <div un-col-span-1/> - <div un-col-span-3> - <h2 class="text-heading text-2xl font-semibold">合気道とは</h2> - <p class="text-body mt-3 leading-relaxed"> - 合気道は、開祖・植芝盛平翁が創始した現代武道です。<br - />相手と強弱を競わず、入身と転換の体捌きと呼吸力から生まれる技によって心身の錬成図ります。 - </p> - <p class="text-body mt-3 leading-relaxed"> - 試合や競技は行わず、お互いに切磋琢磨し合って稽古を積み重ねることを目的としています。 - </p> - <a - title="合気道についてもっと詳しく知る" - href="/about/aikido" - class="btn-secondary mt-4">もっと詳しく</a - > - </div> - </div> + <section class="container-page pt-0 grid grid-cols-4 gap-24"> + <div class="col-span-4 sm:col-span-3"> + <h2 class="text-heading text-2xl font-semibold">合気道とは</h2> + <p class="text-body mt-3 leading-relaxed"> + 合気道は、開祖・植芝盛平翁が創始した現代武道です。<br + />相手と強弱を競わず、入身と転換の体捌きと呼吸力から生まれる技によって心身の錬成図ります。 + </p> + <p class="text-body mt-3 leading-relaxed"> + 試合や競技は行わず、お互いに切磋琢磨し合って稽古を積み重ねることを目的としています。 + </p> + <a + title="合気道についてもっと詳しく知る" + href="/about/aikido" + class="btn-secondary mt-4">もっと詳しく</a + > </div> + <div class="hidden sm:col-span-1"></div> </section> <section class="container-page mt-4"> <h2 class="text-heading text-2xl font-bold mb-4">探索する</h2>