|
| 1 | +import Image from 'next/image' |
| 2 | + |
| 3 | +// Define footer data structure |
| 4 | +interface FooterLink { |
| 5 | + href: string |
| 6 | + text: string |
| 7 | + icon?: string |
| 8 | +} |
| 9 | + |
| 10 | +interface FooterSection { |
| 11 | + title: string |
| 12 | + links: FooterLink[] |
| 13 | +} |
| 14 | + |
1 | 15 | export const Footer: React.FC = () => {
|
2 |
| - const dot = ' · ' |
| 16 | + // Data for footer sections |
| 17 | + const footerSections: FooterSection[] = [ |
| 18 | + { |
| 19 | + title: 'Research', |
| 20 | + links: [ |
| 21 | + { |
| 22 | + href: 'https://arxiv.org/abs/2006.01855', |
| 23 | + text: "Maia Paper (KDD '20)", |
| 24 | + }, |
| 25 | + { |
| 26 | + href: 'https://www.cs.toronto.edu/~ashton/pubs/maia2-neurips2024.pdf', |
| 27 | + text: "Maia-2 Paper (NeurIPS '24)", |
| 28 | + }, |
| 29 | + { |
| 30 | + href: 'https://csslab.cs.toronto.edu/research/', |
| 31 | + text: 'CSSLab Research', |
| 32 | + }, |
| 33 | + ], |
| 34 | + }, |
| 35 | + { |
| 36 | + title: 'Opensource', |
| 37 | + links: [ |
| 38 | + { |
| 39 | + href: 'https://github.com/CSSLab/maia-chess', |
| 40 | + text: 'Maia Model', |
| 41 | + }, |
| 42 | + { |
| 43 | + href: 'https://github.com/CSSLab/maia2', |
| 44 | + text: 'Maia-2 Model', |
| 45 | + }, |
| 46 | + { |
| 47 | + href: 'https://github.com/csslab/maia-platform-frontend', |
| 48 | + text: 'Maia Web Platform', |
| 49 | + }, |
| 50 | + ], |
| 51 | + }, |
| 52 | + { |
| 53 | + title: 'Lichess Bots', |
| 54 | + links: [ |
| 55 | + { |
| 56 | + href: 'https://lichess.org/@/maia1', |
| 57 | + text: 'Maia 1100', |
| 58 | + }, |
| 59 | + { |
| 60 | + href: 'https://lichess.org/@/maia5', |
| 61 | + text: 'Maia 1500', |
| 62 | + }, |
| 63 | + { |
| 64 | + href: 'https://lichess.org/@/maia9', |
| 65 | + text: 'Maia 1900', |
| 66 | + }, |
| 67 | + ], |
| 68 | + }, |
| 69 | + { |
| 70 | + title: 'Contact', |
| 71 | + links: [ |
| 72 | + { |
| 73 | + href: 'https://discord.gg/hHb6gqFpxZ', |
| 74 | + text: 'Discord Community', |
| 75 | + icon: 'link', |
| 76 | + }, |
| 77 | + { |
| 78 | + |
| 79 | + |
| 80 | + icon: 'mail', |
| 81 | + }, |
| 82 | + { |
| 83 | + href: 'https://x.com/maiachess', |
| 84 | + text: '@maiachess', |
| 85 | + icon: 'link', |
| 86 | + }, |
| 87 | + ], |
| 88 | + }, |
| 89 | + ] |
3 | 90 |
|
4 | 91 | return (
|
5 |
| - <> |
6 |
| - <div className="flex flex-col items-center justify-center gap-1 py-4"> |
7 |
| - <p className="text-center text-sm"> |
8 |
| - <a |
9 |
| - className="opacity-70 transition duration-300 hover:opacity-90" |
10 |
| - |
11 |
| - target="_blank" |
12 |
| - rel="noreferrer" |
13 |
| - > |
14 |
| - |
15 |
| - </a> |
16 |
| - {dot} |
17 |
| - <a |
18 |
| - className="opacity-70 transition duration-300 hover:opacity-90" |
19 |
| - href="https://twitter.com/maiachess" |
20 |
| - target="_blank" |
21 |
| - rel="noreferrer" |
22 |
| - > |
23 |
| - @maiachess |
24 |
| - </a> |
25 |
| - {dot}A project by the{' '} |
26 |
| - <a |
27 |
| - className="opacity-70 transition duration-300 hover:opacity-90" |
28 |
| - href="http://csslab.cs.toronto.edu/" |
29 |
| - target="_blank" |
30 |
| - rel="noreferrer" |
31 |
| - > |
32 |
| - University of Toronto CSSLab |
33 |
| - </a> |
34 |
| - </p> |
35 |
| - <p className="text-center text-sm"> |
36 |
| - © 2024 Maia Chess. All rights reserved. |
37 |
| - {/* {dot} |
38 |
| - <a |
39 |
| - href="/privacy" |
40 |
| - className="opacity-70 transition duration-300 hover:opacity-90" |
41 |
| - > |
42 |
| - Privacy Policy |
43 |
| - </a> |
44 |
| - {dot} |
45 |
| - <a |
46 |
| - href="/tos" |
47 |
| - className="opacity-70 transition duration-300 hover:opacity-90" |
48 |
| - > |
49 |
| - TOS |
50 |
| - </a> */} |
51 |
| - </p> |
| 92 | + <div className="mt-20 flex flex-col items-start justify-center gap-8 bg-background-1/60 px-6 py-8 md:items-center md:px-4"> |
| 93 | + <div className="flex w-full max-w-4xl flex-col items-start justify-start gap-4 md:flex-row md:items-center md:justify-center md:gap-8"> |
| 94 | + <div className="mb-2 flex flex-col items-start gap-1 md:mb-0 md:items-center md:gap-0.5"> |
| 95 | + <div className="flex items-center gap-2"> |
| 96 | + <Image |
| 97 | + src="/maia-no-bg.png" |
| 98 | + alt="Maia Chess" |
| 99 | + width={26} |
| 100 | + height={26} |
| 101 | + /> |
| 102 | + <p className="text-xl font-bold text-primary">Maia Chess</p> |
| 103 | + </div> |
| 104 | + <p className="max-w-[200px] text-left text-sm text-secondary md:max-w-[160px] md:text-center md:text-xs"> |
| 105 | + A project by the{' '} |
| 106 | + <a |
| 107 | + target="_blank" |
| 108 | + rel="noreferrer" |
| 109 | + href="http://csslab.cs.toronto.edu/" |
| 110 | + className="text-primary" |
| 111 | + > |
| 112 | + University of Toronto CSSLab |
| 113 | + </a> |
| 114 | + </p> |
| 115 | + </div> |
| 116 | + <div className="hidden h-10 w-[1px] rounded-full bg-white opacity-20 md:block" /> |
| 117 | + <div className="flex flex-col gap-6 md:flex-row md:gap-10"> |
| 118 | + {footerSections.map((section, index) => ( |
| 119 | + <div |
| 120 | + key={index} |
| 121 | + className="flex flex-col items-start justify-start gap-1.5 md:gap-0.5" |
| 122 | + > |
| 123 | + <p className="text-base font-medium md:text-sm"> |
| 124 | + {section.title} |
| 125 | + </p> |
| 126 | + {section.links.map((link, linkIndex) => ( |
| 127 | + <a |
| 128 | + key={linkIndex} |
| 129 | + href={link.href} |
| 130 | + target="_blank" |
| 131 | + rel="noreferrer" |
| 132 | + className="mt-0.5 md:mt-0.5" |
| 133 | + > |
| 134 | + {link.icon ? ( |
| 135 | + <div className="flex items-center gap-1.5 text-secondary transition duration-200 hover:text-primary/80"> |
| 136 | + <span className="material-symbols-outlined !text-sm md:!text-xs"> |
| 137 | + {link.icon} |
| 138 | + </span> |
| 139 | + <p className="text-sm md:text-xs">{link.text}</p> |
| 140 | + </div> |
| 141 | + ) : ( |
| 142 | + <p className="text-sm text-secondary transition duration-200 hover:text-primary/80 md:text-xs"> |
| 143 | + {link.text} |
| 144 | + </p> |
| 145 | + )} |
| 146 | + </a> |
| 147 | + ))} |
| 148 | + </div> |
| 149 | + ))} |
| 150 | + </div> |
52 | 151 | </div>
|
53 |
| - </> |
| 152 | + <p className="text-left text-sm text-secondary md:text-center md:text-xs"> |
| 153 | + © 2024 Maia Chess. All rights reserved. |
| 154 | + </p> |
| 155 | + </div> |
54 | 156 | )
|
55 | 157 | }
|
0 commit comments