英语与西班牙语双语界面,首页按浏览器语言自动跳转到对应语言路由
my-portfolio — Astro 作品集模板
作者 xexubonete
基于 Astro、React 与 Tailwind CSS 的双语个人作品集网站,支持浏览器语言自动检测与明暗主题切换。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
bento 网格布局,列数随屏幕宽度从 1 列逐步变为 2 列和 4 列
提供明暗主题切换,并使用 Motion 实现卡片入场动画
内容数据与卡片文案分离:经历/学习数据在 lib/constants 中,卡片文案在各自组件内
使用 pnpm 并通过 packageManager 字段固定版本,需先启用 corepack
包含 HeadSEO 组件与 404 页面,仓库内附带 Netlify 和 Vercel 部署配置
模板详细介绍
这是一个面向开发者的个人作品集模板,使用 Astro、React、Tailwind CSS 和 TypeScript 构建,界面语言为英语与西班牙语。首页会根据浏览器语言自动跳转到 /en/ 或 /es/ 路由,两个语言版本各自包含首页与 work 页面。页面主体采用 bento 网格布局,卡片数量与排列会随屏幕宽度从 1 列变为 2 列再到 4 列。
内容组织上,经历与学习数据分别放在 src/lib/constants.ts 和 src/lib/constants-es.ts,每张卡片的文案则写在对应双语组件内部的 strings 对象里。卡片包括 IntroCard、SkillsCard、CVCard、AvailableCard、ProjectsCard、AboutCard、GoalsCard、ExperienceCard、QuoteCard、StudyCard 和 ContactsCard。项目还提供明暗主题切换、Lucide 图标、Motion 动画以及 HeadSEO 组件。
使用前需要留意:仓库通过 packageManager 字段固定了 pnpm 版本,需先执行 corepack enable;构建与类型检查命令为 pnpm check 和 pnpm build。仓库同时包含 netlify.toml 与 vercel.json,说明部署配置面向这两个平台。演示图片、字体、图标等第三方素材的许可需要单独核对,代码本身的 MIT 许可不覆盖这些内容。
适合你的项目吗?
适用场景
- 开发者需要一个双语个人作品集网站,展示技能、项目、经历与联系方式
- 希望用 bento 卡片式布局组织个人介绍、项目与学习经历等内容
- 需要按浏览器语言自动切换英语或西班牙语页面的站点
- 准备部署到 Netlify 或 Vercel,并希望沿用仓库内已有配置
适合人群
- 熟悉 Astro、React 与 Tailwind CSS,能直接修改组件和样式文件的开发者
- 需要英语/西班牙语双语作品集,并愿意自行维护两套内容数据的用户
- 接受以 bento 网格卡片作为主要信息呈现方式的个人站点
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
克隆仓库后先执行 corepack enable 以启用 packageManager 字段固定的 pnpm 版本,再运行 pnpm install
- 2
使用 pnpm dev 启动开发服务器,用 pnpm check 做类型检查、pnpm build 构建生产版本
- 3
英语内容改 src/lib/constants.ts,西班牙语内容改 src/lib/constants-es.ts;卡片文案在各双语组件的 strings 对象中
- 4
网格列宽与间距在 src/components/bento/BentoGrid.astro 中调整,主题颜色在 src/styles/globals.css 中修改
- 5
演示图片、字体、图标等第三方素材需按各自许可单独核对,域名与托管等外部服务可能产生费用
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中的免费 MIT 版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 使用、修改或分发代码时,保留原作者版权声明和完整 MIT 许可证。
- 允许免费使用、修改及商用,也允许分发代码;分发时仍需随附版权与许可声明。
- 代码按现状提供,作者不承诺担保或承担使用责任。
额外费用与待核对事项
- 项目通过 packageManager 字段固定了 pnpm 版本,使用前需先执行 corepack enable 以启用匹配的包管理器版本,否则可能无法按预期安装依赖。
- 项目依赖 Lucide Icons 与 Motion 等第三方库,这些依赖遵循各自的许可条款,MIT 许可仅覆盖本仓库代码,不覆盖第三方依赖。
- 仓库包含 netlify.toml 与 vercel.json 部署配置,若部署到 Netlify 或 Vercel 等外部托管平台,可能产生相应服务费用。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
Package manager: **pnpm** (pinned via the `packageManager` field). Use `corepack enable` to get the matching version automatically.
README 原文
- [Lucide Icons](https://lucide.dev/) - [Motion](https://motion.dev/)
README 原文
https://github.com/xexubonete/my-portfolio/blob/main/LICENSEhttps://github.com/xexubonete/my-portfolio/blob/main/README.md├── netlify.toml
README 原文
依据完整 MIT 许可证与仓库 README 核对 · 2026-09-30。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Astro · React
- 网站类型
- 作品集
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-10
- 截图检查日期
- 2026-09-30
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 15177812e80a0b15438ff7742dce3bd88d381faf7cdd2166736e2ea929c28501
2026-09-30T01:07:21.696Z
来源文件 / 仓库# 🎯 My portfolio
A modern, responsive portfolio website built with Astro, React, and Tailwind CSS. Features a bilingual interface (English/Spanish) and a dark/light theme toggle.
## 🚀 Features
- **Bilingual Support**: Automatically detects browser language and switches between English and Spanish
- **Dark/Light Theme**: Toggle between dark and light modes
- **Responsive Design**: A bento-style grid that reflows from 1 → 2 → 4 columns
- **Modern Stack**: Built with Astro, React, and Tailwind CSS
- **Performance Optimized**: Fast loading times and smooth animations
- **SEO Friendly**: Includes meta tags and proper SEO structure
## 🛠️ Tech Stack
- [Astro](https://astro.build/)
- [React](https://reactjs.org/)
- [Tailwind CSS](https://tailwindcss.com/)
- [TypeScript](https://www.typescriptlang.org/)
- [Lucide Icons](https://lucide.dev/)
- [Motion](https://motion.dev/)
> Package manager: **pnpm** (pinned via the `packageManager` field). Use `corepack enable` to get the matching version automatically.
## 🏗️ Project Structure
```
├── astro.config.mjs
├── components.json
├── netlify.toml
├── package.json
├── pnpm-lock.yaml
├── public/ # static assets (CV PDF, images, memojis)
├── src
│ ├── components
│ │ ├── bento
│ │ │ ├── BentoGrid.astro # responsive bento layout + entry animation
│ │ │ ├── Card.astro # shared card shell (fills its grid cell)
│ │ │ ├── Container.astro
│ │ │ ├── ContentCard.astro
│ │ │ └── cards/ # one bilingual component per card
│ │ ├── layout # Header, Footer, HeadSEO, Pulse
│ │ └── ui/ # shadcn/ui primitives (React)
│ ├── i18n
│ │ └── index.ts # Lang type + per-language data helpers
│ ├── layouts/ # BaseLayout, TopLayout, BottomLayout
│ ├── lib/ # constants, constants-es, types, utils
│ ├── pages
│ │ ├── 404.astro
│ │ ├── index.astro # redirects by browser language
│ │ ├── en/{index,work}.astro # thin route entries
│ │ └── es/{index,work}.astro
│ └── styles/ # fonts.css, globals.css
├── tailwind.config.ts
├── tsconfig.json
└── vercel.json
```
## 🚀 Getting Started
1. Clone the repository:
```bash
git clone https://github.com/xexubonete/my-portfolio.git
```
2. Install dependencies:
```bash
corepack enable # activates the pinned pnpm version
pnpm install
```
3. Run the development server:
```bash
pnpm dev
```
4. Type-check and build for production:
```bash
pnpm check
pnpm build
```
## 🎨 Customization
- Edit `src/lib/constants.ts` (English) and `src/lib/constants-es.ts` (Spanish) for experience and study data.
- Card copy lives co-located inside each bilingual component under `src/components/bento/cards/` (a small `strings[lang]` object per card).
- Adjust the grid (column/row spans, gaps) in `src/components/bento/BentoGrid.astro`.
- Modify theme colors in `src/styles/globals.css`.
## 📱 Cards
`IntroCard`, `SkillsCard`, `CVCard`, `AvailableCard`, `ProjectsCard`, `AboutCard`, `GoalsCard`, `ExperienceCard`, `QuoteCard`, `StudyCard`, `ContactsCard` — each is a single component rendered for both languages.
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 📧 Contact
- Email: [[email protected]](mailto:[email protected])
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

astro-theme-cactus
A simple Astro theme. Use it to create your blog or website.
Astro · 作品集

astrofy
Astrofy is a free and open-source template for your Personal Portfolio Website built with Astro and TailwindCS…
Astro · 作品集

astro-nano
Astro Nano is a static, minimalist, lightweight, lightning fast portfolio and blog.
Astro · 作品集

astro-erudite
An opinionated, unstyled static blogging template built with Astro and native CSS.
Astro · 作品集

astro-sphere
Astro Sphere is a static, minimalist, lightweight, lightning fast portfolio and blog.
Astro · 作品集

astro-micro
Blog theme for Astro with search and comments built-in. Zero frameworks.
Astro · 作品集
