Skip to content

Commit 802d713

Browse files
committed
feat: redesign pages
1 parent 56ad681 commit 802d713

28 files changed

+1068
-593
lines changed

.claude/settings.local.json

Lines changed: 0 additions & 11 deletions
This file was deleted.

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,6 @@ next-env.d.ts
4747

4848
# pwa
4949
public/sw*
50-
public/workbox*
50+
public/workbox*
51+
52+
.claude/settings.local.json

app/[lang]/(common)/ButtonGroup.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ const ButtonGroup = ({
4747
return (
4848
<div
4949
style={style}
50-
className={`rounded-[4px] h-12 w-full bg-basic flex items-center ${className}`}
50+
className={`rounded-[12px] h-12 w-full flex items-center bg-black/10 dark:bg-white/10 backdrop-blur-md border border-black/20 dark:border-white/10 ${className}`}
5151
>
5252
{buttons.map((button, index) => {
5353
const selected = index === selectedIndex;

app/[lang]/(common)/DataTable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export function DataTable<T>(props: DataTableProps<T>): ReactElement {
3232

3333
return (
3434
<table className={clsx(['flex-1 self-stretch', props.className])}>
35-
<thead className={clsx('', props.classNames?.tHead)}>
35+
<thead className={clsx('sticky top-0 z-10', props.classNames?.tHead)}>
3636
<tr
3737
className={clsx(
3838
'flex-1 px-1 flex items-center',

app/[lang]/(common)/Dropdown.tsx

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
'use-client';
1+
'use client';
22

33
import type {MouseEventHandler, ReactElement} from 'react';
44
import {useRef, useState} from 'react';
@@ -37,23 +37,22 @@ function Dropdown<T extends {domain: string; icon: ReactElement}>({
3737
<div
3838
ref={dropdownRef}
3939
className={clsx(
40-
'rounded-[4px] relative font-inter h-10 outline-none',
40+
'rounded-[12px] relative font-inter h-10 outline-none',
4141
'flex justify-center items-center',
42+
'bg-white/70 dark:bg-black/70',
43+
'backdrop-blur-xl',
44+
'border border-black/20 dark:border-white/30',
45+
'hover:bg-white/80 dark:hover:bg-black/80',
46+
'transition-all duration-300',
4247
)}
43-
style={{
44-
backgroundColor: 'rgb(84,84,84)',
45-
boxSizing: 'border-box',
46-
}}
4748
>
4849
<button
4950
onClick={onClick}
5051
className={clsx(
51-
'rounded-[4px] text-white cursor-pointer p-[8px] ml-auto border-none align-middle transition-shadow',
52+
'rounded-[12px] text-gray7 dark:text-white cursor-pointer p-[8px] ml-auto border-none align-middle',
5253
'flex flex-row items-center justify-center',
54+
'transition-all duration-200',
5355
)}
54-
style={{
55-
boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)',
56-
}}
5756
>
5857
{selected?.icon}
5958
<span
@@ -71,12 +70,9 @@ function Dropdown<T extends {domain: string; icon: ReactElement}>({
7170
isOpened
7271
? 'opacity-100 visible translate-y-0'
7372
: 'opacity-0 invisible translate-y-2'
74-
} bg-gray6 absolute top-12 left-0 rounded-md transition-all duration-400`}
75-
style={{
76-
boxShadow: '0 1px 8px rgba(0, 0, 0, 0.3)',
77-
}}
73+
} absolute top-12 left-0 rounded-[12px] transition-all duration-400 bg-white/90 dark:bg-black/90 backdrop-blur-xl border border-black/20 dark:border-white/30 shadow-[0_8px_32px_0_rgba(31,38,135,0.3)]`}
7874
>
79-
<ul className="list-none p-0 bg-gray9">
75+
<ul className="list-none p-0 rounded-[12px] overflow-hidden">
8076
{data.map((item) => (
8177
<li
8278
key={item.domain}
@@ -85,8 +81,9 @@ function Dropdown<T extends {domain: string; icon: ReactElement}>({
8581
setSelected(item);
8682
}}
8783
className={clsx(
88-
'py-2 px-4 hover:bg-gray-200 cursor-pointer text-white',
84+
'py-2 px-4 hover:bg-black/10 dark:hover:bg-white/10 cursor-pointer text-gray7 dark:text-white',
8985
'flex items-center',
86+
'transition-all duration-200',
9087
)}
9188
>
9289
{item.icon}

app/[lang]/(common)/TextInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const TextInput = forwardRef<HTMLInputElement, Props>(
2828
<input
2929
ref={ref}
3030
name={name}
31-
className={`flex-1 self-stretch rounded-[4px] min-h-12 font-inter px-2 bg-transparent border-none outline-none ${
31+
className={`flex-1 self-stretch rounded-[4px] min-h-12 font-inter px-2 bg-transparent border-none outline-none focus:outline-none focus:ring-0 focus:border-none ${
3232
errorMessage ? 'border border-red-500' : ''
3333
} ${className}`}
3434
style={style}

app/[lang]/(home)/Hero/StatsSymbol.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ const PluginStatsInfo = ({
5454
return (
5555
<div
5656
className={clsx(
57-
'ml-[8px] py-[24px] px-[8x] max-w-[600px] w-full',
57+
'ml-[8px] py-[24px] max-w-[600px] w-full',
5858
'flex-1 flex flex-col relative',
5959
)}
6060
>

app/[lang]/(home)/Hero/index.tsx

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ function Hero({t, statsInfo}: Props): ReactElement {
9595
return (
9696
<div
9797
className={clsx(
98-
'self-stretch bg-paper',
98+
'self-stretch bg-paper relative',
9999
'flex flex-col justify-center items-center',
100100
'max-[425px]:p-0',
101101
)}
@@ -108,10 +108,10 @@ function Hero({t, statsInfo}: Props): ReactElement {
108108
'min-[1200px]:self-center min-[1200px]:w-[1200px]',
109109
)}
110110
>
111-
<p className="h1 text-[44px] text-left font-bold mt-[80px] mb-8">
111+
<p className="h1 text-[44px] text-left font-bold mt-[80px] mb-8 text-contrast-light dark:text-contrast-dark">
112112
{t.developerPowerMeter}
113113
</p>
114-
<p className="body1 text-[20px] text-left mb-[36px] opacity-50">
114+
<p className="body1 text-[20px] text-left mb-[36px] text-gray5 dark:text-gray3">
115115
{t.developerPowerMeterDesc}
116116
</p>
117117
{/* Begin: GreatFrontEnd Banner */}
@@ -128,8 +128,14 @@ function Hero({t, statsInfo}: Props): ReactElement {
128128
>
129129
<div
130130
className={clsx(
131-
'rounded-[4px] bg-gray7 px-3 h-[64px] relative body2 max-w-[800px]',
131+
'rounded-[16px] px-3 h-[64px] relative body2 max-w-[800px]',
132132
'flex flex-row-reverse items-center',
133+
'bg-white/50 dark:bg-black/40',
134+
'backdrop-blur-2xl',
135+
'border border-black/10 dark:border-white/20',
136+
'shadow-[0_20px_60px_-15px_rgba(0,0,0,0.2)]',
137+
'hover:bg-white/60 dark:hover:bg-black/50',
138+
'transition-all duration-300',
133139
'max-[425px]:p-3 max-[425px]:self-stretch max-[425px]:h-auto max-[425px]:flex-wrap',
134140
'max-[320px]:py-3 max-[320px]:items-start',
135141
)}
@@ -141,7 +147,7 @@ function Hero({t, statsInfo}: Props): ReactElement {
141147
'bg-transparent border-0 text-center max-w-[100px] p-2',
142148
'absolute',
143149
)}
144-
text={<SearchIcon size={22} fill="#FFF" />}
150+
text={<SearchIcon size={22} className="text-gray8 dark:text-white" />}
145151
/>
146152
<div
147153
className={clsx(
@@ -158,15 +164,15 @@ function Hero({t, statsInfo}: Props): ReactElement {
158164
/>
159165
<span
160166
className={clsx(
161-
'text-white',
167+
'text-gray5 dark:text-gray3',
162168
'mx-3 body3 text-[22px]',
163169
'max-[425px]:invisible max-[425px]:hidden',
164170
)}
165171
>
166172
/
167173
</span>
168174
<TextInput
169-
className="text-white"
175+
className="text-gray7 dark:text-white placeholder:text-gray5 dark:placeholder:text-gray4"
170176
{...register('githubID')}
171177
placeholder={t.githubUsername}
172178
onChange={(e) => {
@@ -183,10 +189,15 @@ function Hero({t, statsInfo}: Props): ReactElement {
183189
className={clsx(
184190
'max-w-[800px] flex-1 self-stretch',
185191
'flex flex-col',
192+
'rounded-[20px] p-6 mt-6',
193+
'bg-white/50 dark:bg-black/40',
194+
'backdrop-blur-2xl',
195+
'border border-black/10 dark:border-white/20',
196+
'shadow-[0_20px_60px_-15px_rgba(0,0,0,0.2)]',
186197
)}
187198
>
188199
<ButtonGroup
189-
className="py-[4px] w-[98%] mt-[18px] mb-[10px]"
200+
className="py-[4px] w-full mb-4"
190201
selectedIndex={isBasic ? 0 : 1}
191202
buttons={[{label: t.basic}, {label: t.advanced}]}
192203
onClick={(index) => {

app/[lang]/(home)/SectionFooter.tsx

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use client';
2+
13
import type {ReactElement} from 'react';
24
import clsx from 'clsx';
35
import {Inter} from 'next/font/google';
@@ -7,7 +9,6 @@ import type {Translates} from '../../../src/localization';
79
import imgBgSection1 from '@/public/assets/bg_section1.png';
810
import SvgScouter from '@/public/assets/scouter.svg';
911
import {useMediaQuery} from 'usehooks-ts';
10-
import GreatFrontEnd from '../(common)/GreatFrontEnd';
1112

1213
const inter = Inter({subsets: ['latin']});
1314

@@ -39,17 +40,28 @@ export default function SectionFooter({t}: Props): ReactElement {
3940
>
4041
<p
4142
className={clsx(
42-
'text-white max-w-[800px] leading-8 text-[24px] text-center mt-32 mb-20 mx-10',
43+
'text-white leading-8 text-[24px] text-center mt-12 mb-20',
4344
inter.className,
4445
)}
4546
>
4647
{t.enjoyStats}
4748
</p>
48-
<SvgScouter className="w-screen px-12 max-w-6xl" />
49+
<a
50+
href="https://github.com/hyochan"
51+
target="_blank"
52+
rel="noopener noreferrer"
53+
className="cursor-pointer"
54+
>
55+
<SvgScouter className="w-screen px-12 max-w-3xl" />
56+
</a>
4957
<div
5058
className={clsx(
51-
'h-[22px] mb-12 mt-12',
59+
'h-[22px] mb-12 mt-12 px-6 py-4',
5260
'flex flex-row items-center',
61+
'rounded-[12px]',
62+
'bg-white/5 dark:bg-white/5',
63+
'backdrop-blur-md',
64+
'border border-white/10',
5365
inter.className,
5466
)}
5567
>
@@ -73,13 +85,6 @@ export default function SectionFooter({t}: Props): ReactElement {
7385
</p>
7486
</div>
7587
</div>
76-
{/* Begin: GreatFrontEnd Banner */}
77-
<GreatFrontEnd
78-
className="mb-20"
79-
href="https://www.greatfrontend.com/prepare/coding?fpr=hyo73"
80-
title="Coding interview questions"
81-
/>
82-
{/* End: GreatFrontEnd Banner */}
8388
</div>
8489
);
8590
}

0 commit comments

Comments
 (0)