Skip to content

Commit 08babd9

Browse files
committed
型エラー修正、レスポンシブの値を調整
1 parent 274d056 commit 08babd9

File tree

1 file changed

+113
-102
lines changed

1 file changed

+113
-102
lines changed

app/page.tsx

Lines changed: 113 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { getPagesList } from "@/lib/docs";
44
import clsx from "clsx";
55
import { ReactNode } from "react";
66
import { LanguageIcon } from "./terminal/icons";
7-
import { RuntimeLang } from "./terminal/runtime";
7+
import { RuntimeLang } from "@my-code/runtime/languages";
88

99
export const metadata: Metadata = {
1010
title: "my.code(); へようこそ",
@@ -15,39 +15,49 @@ export const metadata: Metadata = {
1515
export default async function Home() {
1616
const pagesList = await getPagesList();
1717
return (
18-
<div className="max-w-300 mx-auto p-4">
19-
<div className="hero bg-gradient-to-br from-primary/30 via-secondary/10 to-accent/30 rounded-3xl my-8 py-4 sm:px-4 md:py-16 mb-8 md:mb-16 xl:mb-24">
20-
<div className="hero-content text-center">
21-
<div>
22-
<h1 className="text-5xl md:text-6xl font-bold mb-6">
23-
<span className="font-mono text-primary mr-3 drop-shadow-sm">
24-
my.code();
25-
</span>
26-
へようこそ
27-
</h1>
28-
<p className="text-2xl md:text-3xl font-bold mb-6 opacity-90">
29-
環境構築不要、その場で実践。
30-
</p>
31-
<p className="text-lg md:text-xl opacity-80 mb-10 leading-relaxed">
32-
AIアシスタントとの対話履歴があなただけの教材へと進化する、
33-
<br className="hidden md:block" />
34-
新しいプログラミング学習サイトです。
35-
</p>
36-
<div className="flex justify-center gap-4">
37-
<Link
38-
href="#tutorials"
39-
className="btn btn-primary btn-xl btn-wide rounded-box"
40-
>
41-
はじめる
42-
</Link>
18+
<div className="w-full p-4">
19+
<div className="max-w-docs mx-auto">
20+
<div
21+
className={clsx(
22+
"hero bg-gradient-to-br from-primary/30 via-secondary/10 to-accent/30 rounded-3xl",
23+
"my-8 py-4 px-0 mb-8",
24+
"sm:px-4",
25+
"md:py-8 md:mb-12",
26+
"lg:py-16 lg:mb-16",
27+
"xl:py-16 xl:mb-20"
28+
)}
29+
>
30+
<div className="hero-content text-center">
31+
<div>
32+
<h1 className="text-5xl md:text-6xl font-bold mb-6">
33+
<span className="font-mono text-primary mr-3 drop-shadow-sm">
34+
my.code();
35+
</span>
36+
へようこそ
37+
</h1>
38+
<p className="text-2xl md:text-3xl font-bold mb-6 opacity-90">
39+
環境構築不要、その場で実践。
40+
</p>
41+
<p className="text-lg md:text-xl opacity-80 mb-10 leading-relaxed">
42+
AIアシスタントとの対話履歴があなただけの教材へと進化する、
43+
<br className="hidden md:block" />
44+
新しいプログラミング学習サイトです。
45+
</p>
46+
<div className="flex justify-center gap-4">
47+
<Link
48+
href="#tutorials"
49+
className="btn btn-primary btn-xl btn-wide rounded-box"
50+
>
51+
はじめる
52+
</Link>
53+
</div>
4354
</div>
4455
</div>
4556
</div>
46-
</div>
4757

48-
{/*<h2 className="text-3xl md:text-4xl font-bold mb-16 text-center">主な特徴</h2>*/}
49-
<div className="flex flex-col gap-12 md:gap-20 mb-8 xl:mb-16">
50-
{/*<FeatureCard
58+
{/*<h2 className="text-3xl md:text-4xl font-bold mb-16 text-center">主な特徴</h2>*/}
59+
<div className="flex flex-col gap-6 md:gap-8 lg:gap-12 xl:gap-16">
60+
{/*<FeatureCard
5161
icon="📚"
5262
iconColor="bg-primary/10 text-primary"
5363
title="豊富なチュートリアル"
@@ -57,79 +67,80 @@ export default async function Home() {
5767
初心者向けの基礎から上級者向けの応用まで、幅広いレベルに対応したチュートリアルが揃っています。
5868
あなたがまだ触ったことのない言語も、気軽に体験してみることができます。
5969
</FeatureCard>*/}
60-
<FeatureCard
61-
icon="⚡"
62-
iconColor="bg-primary/10 text-primary"
63-
title="環境構築は一切不要。ブラウザで動く実行環境"
64-
>
65-
面倒な開発環境のセットアップで挫折する必要はありません。
66-
チュートリアル内のサンプルコードは、ボタン一つでそのまま実行可能。
67-
もちろん自由に編集して結果を試すこともできます。
68-
{/*さらに、エラーメッセージの解説やエラー箇所のハイライト表示など、初心者に優しい機能も充実しています。*/}
69-
</FeatureCard>
70-
<FeatureCard
71-
icon="🤖"
72-
iconColor="bg-secondary/10 text-secondary"
73-
title="AIアシスタントがあなたの学習をサポート"
74-
reversed
75-
>
76-
エラーの原因がわからない?コードの意味を知りたい?
77-
AIアシスタントにいつでも質問できます。
78-
あなたとの対話履歴がそのまま蓄積され、あなただけの最強の復習ノートへと進化します。
79-
</FeatureCard>
80-
<FeatureCard
81-
icon="✏️"
82-
iconColor="bg-accent/10 text-accent"
83-
title="実践的な練習問題"
84-
>
85-
{/*todo: 他セクションと同じスタイルの文章で書き直す?*/}
86-
各チュートリアルには練習問題が含まれており、学んだ内容を実際に試すことができます。
87-
練習問題は段階的に難易度が上がるように設計されており、理解度を深めるのに役立ちます。
88-
書いたコードはその場ですぐにAIアシスタントがレビューし、フィードバックを提供します。
89-
</FeatureCard>
90-
</div>
70+
<FeatureCard
71+
icon="⚡"
72+
iconColor="bg-primary/10 text-primary"
73+
title="環境構築は一切不要。ブラウザで動く実行環境"
74+
>
75+
面倒な開発環境のセットアップで挫折する必要はありません。
76+
チュートリアル内のサンプルコードは、ボタン一つでそのまま実行可能。
77+
もちろん自由に編集して結果を試すこともできます。
78+
{/*さらに、エラーメッセージの解説やエラー箇所のハイライト表示など、初心者に優しい機能も充実しています。*/}
79+
</FeatureCard>
80+
<FeatureCard
81+
icon="🤖"
82+
iconColor="bg-secondary/10 text-secondary"
83+
title="AIアシスタントがあなたの学習をサポート"
84+
reversed
85+
>
86+
エラーの原因がわからない?コードの意味を知りたい?
87+
AIアシスタントにいつでも質問できます。
88+
あなたとの対話履歴がそのまま蓄積され、あなただけの最強の復習ノートへと進化します。
89+
</FeatureCard>
90+
<FeatureCard
91+
icon="✏️"
92+
iconColor="bg-accent/10 text-accent"
93+
title="実践的な練習問題"
94+
>
95+
{/*todo: 他セクションと同じスタイルの文章で書き直す?*/}
96+
各チュートリアルには練習問題が含まれており、学んだ内容を実際に試すことができます。
97+
練習問題は段階的に難易度が上がるように設計されており、理解度を深めるのに役立ちます。
98+
書いたコードはその場ですぐにAIアシスタントがレビューし、フィードバックを提供します。
99+
</FeatureCard>
100+
</div>
91101

92-
<div className="divider" />
102+
<div className="divider md:my-8 lg:my-12 xl:my-16" />
93103

94-
<h2 id="tutorials" className="text-3xl font-bold mb-4 text-center">
95-
さあ、学習を始めましょう
96-
</h2>
97-
<p className="text-center opacity-70 mb-10">
98-
豊富なラインナップから、学びたい言語を選択してください。
99-
</p>
100-
<div
101-
className="grid items-center gap-4"
102-
style={{
103-
gridTemplateColumns: "repeat(auto-fill, minmax(20rem, 1fr))",
104-
}}
105-
>
106-
{pagesList.map((group) => {
107-
return (
108-
<Link
109-
key={group.id}
110-
href={`${group.id}/${group.pages[0].slug}`}
111-
className={clsx(
112-
"card card-border border-2 card-sm bg-base-200 border-base-300 shadow-sm",
113-
"hover:shadow-md transition-all hover:-translate-y-0.5",
114-
"hover:border-primary hover:text-primary "
115-
)}
116-
>
117-
<div className="card-body">
118-
<div className="card-title justify-between">
119-
<span className="flex gap-2 items-center">
120-
<LanguageIcon
121-
className="w-5 h-5"
122-
lang={group.id as RuntimeLang}
123-
/>
124-
{group.name}
125-
</span>
126-
<span className="text-2xl/0">&raquo;</span>
104+
<h2 id="tutorials" className="text-3xl font-bold mb-4 text-center">
105+
さあ、学習を始めましょう
106+
</h2>
107+
<p className="text-center opacity-70 mb-10">
108+
豊富なラインナップから、学びたい言語を選択してください。
109+
</p>
110+
<div
111+
className="grid items-center gap-4"
112+
style={{
113+
gridTemplateColumns: "repeat(auto-fill, minmax(20rem, 1fr))",
114+
}}
115+
>
116+
{pagesList.map((group) => {
117+
return (
118+
<Link
119+
key={group.id}
120+
href={`${group.id}/${group.pages[0].slug}`}
121+
className={clsx(
122+
"card card-border border-2 card-sm bg-base-200 border-base-300 shadow-sm",
123+
"hover:shadow-md transition-all hover:-translate-y-0.5",
124+
"hover:border-primary hover:text-primary "
125+
)}
126+
>
127+
<div className="card-body">
128+
<div className="card-title justify-between">
129+
<span className="flex gap-2 items-center">
130+
<LanguageIcon
131+
className="w-5 h-5"
132+
lang={group.id as RuntimeLang}
133+
/>
134+
{group.name}
135+
</span>
136+
<span className="text-2xl/0">&raquo;</span>
137+
</div>
138+
<p>{group.description}</p>
127139
</div>
128-
<p>{group.description}</p>
129-
</div>
130-
</Link>
131-
);
132-
})}
140+
</Link>
141+
);
142+
})}
143+
</div>
133144
</div>
134145
</div>
135146
);
@@ -145,11 +156,11 @@ function FeatureCard(props: {
145156
return (
146157
<div
147158
className={clsx(
148-
"flex flex-col items-center gap-4 md:gap-8 xl:gap-16",
159+
"flex flex-col items-center gap-4 md:gap-8 lg:gap-16",
149160
props.reversed ? "md:flex-row-reverse" : "md:flex-row"
150161
)}
151162
>
152-
<div className="flex-1 space-y-4 xl:space-y-12">
163+
<div className="flex-1 space-y-4 lg:space-y-8">
153164
<div className="flex flex-row gap-2 items-center">
154165
<span className={clsx("p-3 rounded-xl text-2xl", props.iconColor)}>
155166
{props.icon}

0 commit comments

Comments
 (0)