11import React from 'react' ;
22import { Link } from 'react-router-dom' ;
3+ import { Globe , BookOpen } from '@phosphor-icons/react' ;
34
45const DndAuthorCard = ( {
56 authorName,
@@ -9,36 +10,64 @@ const DndAuthorCard = ({
910 booksWritten,
1011} ) => {
1112 return (
12- < div className = "dnd-author-card" >
13- < img src = { authorImage } alt = { authorName } className = "dnd-author-image" />
14- < h3 className = "dnd-author-name" > { authorName } </ h3 >
15- { authorAlias && (
16- < p className = "dnd-author-alias" >
17- < span className = "dnd-author-label" > Alias:</ span > { authorAlias }
18- </ p >
19- ) }
20- { authorWebsite && (
21- < p className = "dnd-author-website" >
22- < a href = { authorWebsite } target = "_blank" rel = "noopener noreferrer" >
23- Website
13+ < div className = "dnd-parchment-container p-8 md:p-12 shadow-xl group transition-all duration-500 hover:-translate-y-2" >
14+ < div className = "dnd-ornate-corner dnd-ornate-corner-tl !w-6 !h-6" />
15+ < div className = "dnd-ornate-corner dnd-ornate-corner-tr !w-6 !h-6" />
16+ < div className = "dnd-ornate-corner dnd-ornate-corner-bl !w-6 !h-6" />
17+ < div className = "dnd-ornate-corner dnd-ornate-corner-br !w-6 !h-6" />
18+
19+ < div className = "relative z-10 flex flex-col items-center text-center" >
20+ < div className = "relative mb-6" >
21+ < div className = "absolute inset-0 bg-dnd-gold rounded-full blur-md opacity-20 group-hover:opacity-40 transition-opacity" />
22+ < img
23+ src = { authorImage }
24+ alt = { authorName }
25+ className = "w-32 h-32 rounded-full object-cover border-4 border-dnd-gold shadow-lg grayscale hover:grayscale-0 transition-all duration-700"
26+ />
27+ </ div >
28+
29+ < h3 className = "text-3xl font-playfairDisplay italic font-black text-dnd-crimson uppercase tracking-tighter mb-1" >
30+ { authorName }
31+ </ h3 >
32+
33+ { authorAlias && (
34+ < span className = "text-[10px] font-mono font-bold uppercase tracking-[0.4em] text-dnd-crimson/40 mb-4" >
35+ Known as // { authorAlias }
36+ </ span >
37+ ) }
38+
39+ { authorWebsite && (
40+ < a
41+ href = { authorWebsite }
42+ target = "_blank"
43+ rel = "noopener noreferrer"
44+ className = "flex items-center gap-2 text-xs font-mono font-bold uppercase tracking-widest text-dnd-crimson/60 hover:text-dnd-crimson transition-colors mb-8"
45+ >
46+ < Globe size = { 14 } />
47+ Digital Signal
2448 </ a >
25- </ p >
26- ) }
27- { booksWritten && booksWritten . length > 0 && (
28- < div className = "dnd-author-books" >
29- < h4 > Books:</ h4 >
30- < hr className = "dnd-author-books-separator" />
31- < ul >
32- { booksWritten . map ( ( book , index ) => (
33- < li key = { index } >
34- < Link to = { `/stories/books/${ book . bookId } ` } >
49+ ) }
50+
51+ { booksWritten && booksWritten . length > 0 && (
52+ < div className = "w-full pt-6 border-t border-dnd-crimson/10" >
53+ < div className = "flex items-center justify-center gap-2 mb-4 opacity-40" >
54+ < BookOpen size = { 16 } />
55+ < span className = "text-[9px] font-mono font-bold uppercase tracking-[0.3em]" > Compiled Tomes</ span >
56+ </ div >
57+ < div className = "space-y-2" >
58+ { booksWritten . map ( ( book , index ) => (
59+ < Link
60+ key = { index }
61+ to = { `/stories/books/${ book . bookId } ` }
62+ className = "block text-sm font-arvo font-bold text-dnd-crimson/80 hover:text-dnd-crimson transition-colors"
63+ >
3564 { book . bookTitle }
3665 </ Link >
37- </ li >
38- ) ) }
39- </ ul >
40- </ div >
41- ) }
66+ ) ) }
67+ </ div >
68+ </ div >
69+ ) }
70+ </ div >
4271 </ div >
4372 ) ;
4473} ;
0 commit comments