Skip to content

Commit 41481c4

Browse files
committed
Remove font-awesome
1 parent af2f1ff commit 41481c4

File tree

5 files changed

+61
-27
lines changed

5 files changed

+61
-27
lines changed

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
"@mimorisuzuko/yuuka": "1.0.7",
1111
"next": "15.1.5",
1212
"react": "19.0.0",
13-
"react-dom": "19.0.0"
13+
"react-dom": "19.0.0",
14+
"react-icons": "5.4.0"
1415
},
1516
"packageManager": "[email protected]",
1617
"engines": {

src/app/page.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Global } from "@mimorisuzuko/yuuka";
2-
import Script from "next/script";
32
import Header from "../components/Header";
43
import Profile from "../components/Profile";
54
import Publications from "../components/Publications";
@@ -20,7 +19,6 @@ export default function Home() {
2019
}
2120
}}
2221
</Global>
23-
<Script src="https://kit.fontawesome.com/9129381b44.js" />
2422
<Header />
2523
<div
2624
css={{

src/components/Profile.tsx

+37-19
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,51 @@
1-
import type { ReactNode } from "react";
1+
import { type CSS, css } from "@mimorisuzuko/yuuka";
2+
import type { FC, ReactNode } from "react";
3+
import {
4+
RiBriefcase4Fill,
5+
RiCake2Fill,
6+
RiFacebookBoxFill,
7+
RiGithubFill,
8+
RiGoogleFill,
9+
RiGraduationCapFill,
10+
RiHeart3Fill,
11+
RiMailFill,
12+
RiTwitterXFill
13+
} from "react-icons/ri";
214

315
const items: {
4-
iconClassName: string;
16+
Icon: FC<{ className: string }>;
517
jsx: ReactNode;
618
}[] = [
719
{
8-
iconClassName: "fa-solid fa-cake-candles",
20+
Icon: RiCake2Fill,
921
jsx: "1995/02/06"
1022
},
1123
{
12-
iconClassName: "fa-solid fa-user-graduate",
24+
Icon: RiGraduationCapFill,
1325
jsx: "Doctor of Science"
1426
},
1527
{
16-
iconClassName: "fa-solid fa-briefcase",
28+
Icon: RiBriefcase4Fill,
1729
jsx: "ITANDI Inc."
1830
},
1931
{
20-
iconClassName: "fa-solid fa-envelope",
32+
Icon: RiMailFill,
2133
jsx: "m(at)mimorisuzu.co"
2234
},
2335
{
24-
iconClassName: "fa-brands fa-x-twitter",
36+
Icon: RiTwitterXFill,
2537
jsx: <a href="https://x.com/HirokiUsuba">HirokiUsuba</a>
2638
},
2739
{
28-
iconClassName: "fa-brands fa-facebook",
40+
Icon: RiFacebookBoxFill,
2941
jsx: <a href="https://www.facebook.com/hrky0206">hrky0206</a>
3042
},
3143
{
32-
iconClassName: "fa-brands fa-github",
44+
Icon: RiGithubFill,
3345
jsx: <a href="https://github.com/mimorisuzuko">mimorisuzuko</a>
3446
},
3547
{
36-
iconClassName: "fa-brands fa-google",
48+
Icon: RiGoogleFill,
3749
jsx: (
3850
<a href="https://scholar.google.co.jp/citations?user=JxA4JoIAAAAJ">
3951
Google Scholar
@@ -42,6 +54,15 @@ const items: {
4254
}
4355
];
4456

57+
const styles = {
58+
ul: { listStyle: "none", padding: 0 }
59+
} as const satisfies { [key: string]: CSS };
60+
61+
const [listIconClassName, ListIconStyle] = css({
62+
marginRight: 8,
63+
verticalAlign: "middle"
64+
});
65+
4566
export default function Profile() {
4667
return (
4768
<div
@@ -93,21 +114,18 @@ export default function Profile() {
93114
>
94115
Hiroki Usuba / <small>薄羽 大樹</small>
95116
</div>
96-
<ul className="fa-ul">
97-
{items.map(({ iconClassName, jsx }, i) => (
117+
<ListIconStyle />
118+
<ul css={styles.ul}>
119+
{items.map(({ Icon, jsx }, i) => (
98120
<li key={i}>
99-
<span className="fa-li">
100-
<i className={iconClassName} />
101-
</span>
121+
<Icon className={listIconClassName} />
102122
{jsx}
103123
</li>
104124
))}
105125
</ul>
106-
<ul className="fa-ul">
126+
<ul css={styles.ul}>
107127
<li>
108-
<span className="fa-li">
109-
<i className="fa-solid fa-heart" />
110-
</span>
128+
<RiHeart3Fill className={listIconClassName} />
111129
<a href="https://hibiki-cast.jp/hibiki_f/mimori_suzuko/">
112130
Suzuko Mimori
113131
</a>

src/components/Publications.tsx

+12-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
import { css } from "@mimorisuzuko/yuuka";
12
import type { ReactNode } from "react";
3+
import { RiFilePdf2Fill, RiNewsFill, RiYoutubeFill } from "react-icons/ri";
24
import {
35
type Publication,
46
arxivs,
@@ -10,6 +12,10 @@ import {
1012
postersAndDemosInternationalWithReview
1113
} from "../shared/bibs";
1214

15+
const [iconClassName, IconStyle] = css({
16+
verticalAlign: "middle"
17+
});
18+
1319
const isMe = (name: string) => {
1420
return (
1521
name === "Usuba, Hiroki" || name === "Hiroki Usuba" || name === "薄羽大樹"
@@ -88,7 +94,7 @@ const renderPublicationEn = ({
8894
ret.push(
8995
" ",
9096
<a href={_miyashitacomurl_} key={_miyashitacomurl_}>
91-
[<i className="far fa-file-pdf" />
97+
[<RiFilePdf2Fill className={iconClassName} />
9298
PDF]
9399
</a>
94100
);
@@ -167,7 +173,7 @@ const renderJournalEn = ({
167173
ret.push(
168174
" ",
169175
<a href={_miyashitacomurl_} key={_miyashitacomurl_}>
170-
[<i className="far fa-file-pdf" />
176+
[<RiFilePdf2Fill className={iconClassName} />
171177
PDF]
172178
</a>
173179
);
@@ -234,7 +240,7 @@ const renderPublicationJa = ({
234240
ret.push(
235241
" ",
236242
<a href={_miyashitacomurl_} key={_miyashitacomurl_}>
237-
[<i className="far fa-file-pdf" />
243+
[<RiFilePdf2Fill className={iconClassName} />
238244
PDF]
239245
</a>
240246
);
@@ -244,7 +250,7 @@ const renderPublicationJa = ({
244250
ret.push(
245251
" ",
246252
<a href={_videourl_} key={_videourl_}>
247-
[<i className="fab fa-youtube" />
253+
[<RiYoutubeFill className={iconClassName} />
248254
Video]
249255
</a>
250256
);
@@ -254,7 +260,7 @@ const renderPublicationJa = ({
254260
ret.push(
255261
" ",
256262
<a href={_pressrelease_} key={_pressrelease_}>
257-
[<i className="fa fa-newspaper" />
263+
[<RiNewsFill className={iconClassName} />
258264
Press release]
259265
</a>
260266
);
@@ -318,6 +324,7 @@ export default function Publications() {
318324
}
319325
}}
320326
>
327+
<IconStyle />
321328
<h3>Journal w/ review</h3>
322329
<ol>
323330
{journalsWithReview.map((a, i) => {

yarn.lock

+10
Original file line numberDiff line numberDiff line change
@@ -2424,6 +2424,7 @@ __metadata:
24242424
next: "npm:15.1.5"
24252425
react: "npm:19.0.0"
24262426
react-dom: "npm:19.0.0"
2427+
react-icons: "npm:5.4.0"
24272428
typescript: "npm:5.7.3"
24282429
typescript-eslint: "npm:8.20.0"
24292430
languageName: unknown
@@ -2767,6 +2768,15 @@ __metadata:
27672768
languageName: node
27682769
linkType: hard
27692770

2771+
"react-icons@npm:5.4.0":
2772+
version: 5.4.0
2773+
resolution: "react-icons@npm:5.4.0"
2774+
peerDependencies:
2775+
react: "*"
2776+
checksum: 10c0/698b0c4616870152d86de2585fb709bf3eeb9292d971d689965dade5f0ee71cdc92d2125b728ab220cc39a4c6d6bad1ed526b9b934ab39a7b6001bc23b73ee16
2777+
languageName: node
2778+
linkType: hard
2779+
27702780
"react-is@npm:^16.13.1":
27712781
version: 16.13.1
27722782
resolution: "react-is@npm:16.13.1"

0 commit comments

Comments
 (0)