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
315const 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+
4566export 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 >
0 commit comments