diff --git a/src/lib/components/ImageSection.svelte b/src/lib/components/ImageSection.svelte index 26471a3..3dfd780 100644 --- a/src/lib/components/ImageSection.svelte +++ b/src/lib/components/ImageSection.svelte @@ -12,21 +12,37 @@ const { title, image, imageAlt = "", alignImage, children }: Props = $props(); +
- {imageAlt} + {imageAlt}
-

{title}

-
+
+ + topic +
+

+ {title} +

+
{@render children()}
diff --git a/src/lib/components/Markdown.svelte b/src/lib/components/Markdown.svelte index 3a24f41..a7d04b7 100644 --- a/src/lib/components/Markdown.svelte +++ b/src/lib/components/Markdown.svelte @@ -14,7 +14,47 @@ }); -
+ +
{@html html}
+ + diff --git a/src/lib/components/Pagination.svelte b/src/lib/components/Pagination.svelte index 22781ac..df773d3 100644 --- a/src/lib/components/Pagination.svelte +++ b/src/lib/components/Pagination.svelte @@ -1,3 +1,9 @@ + {#if totalPages > 1} -
+ + +

+ page {currentPage} / {totalPages} +

{/if} diff --git a/src/lib/components/admin-dashboard/NeedsAttention.svelte b/src/lib/components/admin-dashboard/NeedsAttention.svelte index d273a75..83f8b36 100644 --- a/src/lib/components/admin-dashboard/NeedsAttention.svelte +++ b/src/lib/components/admin-dashboard/NeedsAttention.svelte @@ -37,7 +37,7 @@ {#each draftArticles as draft (draft.id)}
diff --git a/src/lib/components/admin-dashboard/QuickActions.svelte b/src/lib/components/admin-dashboard/QuickActions.svelte index 8ccf324..b6402a0 100644 --- a/src/lib/components/admin-dashboard/QuickActions.svelte +++ b/src/lib/components/admin-dashboard/QuickActions.svelte @@ -12,21 +12,21 @@
Add Member New Article New Project diff --git a/src/lib/components/admin-dashboard/RecentActivity.svelte b/src/lib/components/admin-dashboard/RecentActivity.svelte index bddb216..202e26d 100644 --- a/src/lib/components/admin-dashboard/RecentActivity.svelte +++ b/src/lib/components/admin-dashboard/RecentActivity.svelte @@ -32,7 +32,7 @@ {#each recentArticles as article (article.id)}
- 0} - class:border-red-300={displayError} - /> - 0} - class:border-red-300={displayError} - placeholder="title-slug" - /> +
+ + 0} + class:border-red-300={displayError} + /> +
+
+ + 0} + class:border-red-300={displayError} + placeholder="title-slug" + /> +
- {#if displayError} -

{displayError}

- {/if} +
+ {#if displayError} +

{displayError}

+ {/if} +
{#if initialSlug && slug !== initialSlug} diff --git a/src/lib/components/article-form/ArticleFormHeader.svelte b/src/lib/components/article-form/ArticleFormHeader.svelte index 055ec58..4af86b3 100644 --- a/src/lib/components/article-form/ArticleFormHeader.svelte +++ b/src/lib/components/article-form/ArticleFormHeader.svelte @@ -58,7 +58,7 @@ successTimeout = setTimeout(() => { saveSuccess = false; successTimeout = null; - }, 2000); + }, 3500); } return () => { @@ -93,9 +93,9 @@
-
+
-
+
{#if articleId}
-

{opts.title}

diff --git a/src/lib/components/home/AboutSection.svelte b/src/lib/components/home/AboutSection.svelte index 3a1f716..d524e8e 100644 --- a/src/lib/components/home/AboutSection.svelte +++ b/src/lib/components/home/AboutSection.svelte @@ -8,47 +8,98 @@ const { members }: Props = $props(); const currentYear = new Date().getFullYear(); + + type Row = { label: string; value: string }; + + const rows: Row[] = $derived([ + { label: "団体名", value: "ut.code();" }, + { label: "部員", value: `${members}名程度` }, + { label: "所属", value: `東京大学工学部丁友会 (${currentYear}年度)` }, + { label: "部室", value: "駒場キャンパス学生会館 313B 教室" }, + { label: "活動場所", value: "オンライン, 部室, 本郷図書館プロジェクトボックス等" }, + ]); -
+ +
-
-
ABOUT US
-

- 団体概要 -

-
-
- diff --git a/src/lib/components/home/ActivitiesSection.svelte b/src/lib/components/home/ActivitiesSection.svelte index 0863359..a5bed4d 100644 --- a/src/lib/components/home/ActivitiesSection.svelte +++ b/src/lib/components/home/ActivitiesSection.svelte @@ -1,67 +1,108 @@ -
+ +
diff --git a/src/lib/components/home/ArticlesSection.svelte b/src/lib/components/home/ArticlesSection.svelte index 42ea4ec..9e40f52 100644 --- a/src/lib/components/home/ArticlesSection.svelte +++ b/src/lib/components/home/ArticlesSection.svelte @@ -15,63 +15,82 @@ } -
+ +
-
+
-
NEWS & ARTICLES
-

+
+ + // news & articles +
+

最新情報

{#if articles.length > 0} -
+
{#each articles as article (article.id)} - {#if hasUsableCover(article.coverUrl)} - {article.title} - {:else} -
+ {#if hasUsableCover(article.coverUrl)} + {article.title} + {:else} +
+ + No Image + +
+ {/if} +
+
+

- - No Image - -

- {/if} -
-

{article.title}

{#if article.excerpt} -

{article.excerpt}

+

+ {article.excerpt} +

{/if} -
+
{#if article.author}
- + {article.author.name}
{/if} {#if article.publishedAt} + /
- + @@ -83,11 +102,18 @@ {/each}
{:else} -

まだ記事がありません。

+
+

+ // no articles yet +

+

記事は近日公開予定です。

+
{/if}
すべて見る diff --git a/src/lib/components/home/HeroSection.svelte b/src/lib/components/home/HeroSection.svelte index a20c3bd..8fa4c46 100644 --- a/src/lib/components/home/HeroSection.svelte +++ b/src/lib/components/home/HeroSection.svelte @@ -2,38 +2,99 @@ import { ArrowRight } from "lucide-svelte"; - -
+ +
- -
+ +
+ + + + + + +
+ + + + + + +
+ + // university software club +
+ +

+ 東京大学の
+ + ソフトウェア開発 + + サークル

-

+

ut.code(); は、2019 年に発足した東京大学のソフトウェアエンジニアリングコミュニティ・プログラミングサークルです。 プログラミングの学習・教育から、実社会で役立つソフトウェア製作まで、幅広い活動を行っています。

-
+
参加する プロジェクトを見る diff --git a/src/lib/components/home/JoinCTA.svelte b/src/lib/components/home/JoinCTA.svelte index 7d837af..f62494b 100644 --- a/src/lib/components/home/JoinCTA.svelte +++ b/src/lib/components/home/JoinCTA.svelte @@ -2,35 +2,98 @@ import { ArrowRight, Sparkles } from "lucide-svelte"; -
-
-
+ +
+ + + + + + + + + + + +
+
- メンバー募集中 + + now recruiting · メンバー募集中 +
-

+

未来のソフトウェアを
- デザインしよう + + デザインしよう + +

-

+

ut.code(); で一緒にワクワクするソフトウェアを作りませんか?
初心者から実務経験者、学年を問わずどなたでも大歓迎です。

-
+
+ [01] JOIN US + [02] もっと詳しく diff --git a/src/lib/components/home/ProjectsSection.svelte b/src/lib/components/home/ProjectsSection.svelte index 143fd4a..7fb6e96 100644 --- a/src/lib/components/home/ProjectsSection.svelte +++ b/src/lib/components/home/ProjectsSection.svelte @@ -12,59 +12,82 @@ const { projects }: Props = $props(); -
+ +
-
+
-
- PROJECTS +
+ + // projects
-

つくったもの

-

- 実際に使われるプロダクトを開発し、世に届ける +

+ つくったもの +

+

+ 実際に使われるプロダクトを開発し、世に届ける。

-
- {#each projects as project (project.id)} + +
+

+ {project.name} +

+ +
{#if project.description} -

+

{project.description}

{/if} -
+
{PROJECT_CATEGORIES[project.category]} @@ -74,7 +97,7 @@
すべて見る diff --git a/src/lib/components/home/SponsorsSection.svelte b/src/lib/components/home/SponsorsSection.svelte index 0fe37db..4f125e4 100644 --- a/src/lib/components/home/SponsorsSection.svelte +++ b/src/lib/components/home/SponsorsSection.svelte @@ -1,4 +1,6 @@ -
+ +
diff --git a/src/lib/components/home/StatsSection.svelte b/src/lib/components/home/StatsSection.svelte index cd99902..8e83ea4 100644 --- a/src/lib/components/home/StatsSection.svelte +++ b/src/lib/components/home/StatsSection.svelte @@ -1,5 +1,5 @@ -
-
-
- -
-
Members
- -
-
- - {members} - - + -
-
+ type Stat = { + index: string; + label: string; + value: number; + suffix: string; + href: string | null; + Icon: typeof Users; + }; - -
-
Projects
- -
-
- - {projects} - - + -
-
+ const stats: Stat[] = $derived([ + { index: "01", label: "Members", value: members, suffix: "+", href: "/members", Icon: Users }, + { index: "02", label: "Projects", value: projects, suffix: "+", href: "/projects", Icon: Rocket }, + { index: "03", label: "Articles", value: articles, suffix: "+", href: "/articles", Icon: BookOpen }, + { index: "04", label: "Years Active", value: years, suffix: "+", href: null, Icon: Calendar }, + ]); + - -
-
Articles
- -
-
- - {articles} - - + -
-
+ +
+ + -
-
-
Years Active
- -
-
- - {years} - - + +
+ +
+
+
+ + // by the numbers
+

+ 活動の規模 +

+
+ updated · {new Date().getFullYear()}.{String(new Date().getMonth() + 1).padStart(2, "0")} +
+
+ +
+ {#each stats as stat (stat.label)} + {#if stat.href} + +
+
+ {stat.index} / 04 +
+ +
+
+
+ + {stat.value} + + {stat.suffix} +
+
+ {stat.label} +
+
+ + +
+ {:else} +
+
+
+ {stat.index} / 04 +
+ +
+
+
+ + {stat.value} + + {stat.suffix} +
+
+ {stat.label} +
+
+
+ {/if} + {/each}
diff --git a/src/lib/components/image-upload.svelte b/src/lib/components/image-upload.svelte index 09f7cc1..c84a2cb 100644 --- a/src/lib/components/image-upload.svelte +++ b/src/lib/components/image-upload.svelte @@ -206,7 +206,7 @@ {:else}
{#if displayError} -

{displayError}

+

{displayError}

{/if}
- +