AstroReact作品集

my-portfolio — Astro 作品集模板

作者 xexubonete

基于 Astro、React 与 Tailwind CSS 的双语个人作品集网站,支持浏览器语言自动检测与明暗主题切换。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-09-30查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

英语与西班牙语双语界面,首页按浏览器语言自动跳转到对应语言路由

02

bento 网格布局,列数随屏幕宽度从 1 列逐步变为 2 列和 4 列

03

提供明暗主题切换,并使用 Motion 实现卡片入场动画

04

内容数据与卡片文案分离:经历/学习数据在 lib/constants 中,卡片文案在各自组件内

05

使用 pnpm 并通过 packageManager 字段固定版本,需先启用 corepack

06

包含 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 许可不覆盖这些内容。

AstroReact作品集

适合你的项目吗?

适用场景

  • 开发者需要一个双语个人作品集网站,展示技能、项目、经历与联系方式
  • 希望用 bento 卡片式布局组织个人介绍、项目与学习经历等内容
  • 需要按浏览器语言自动切换英语或西班牙语页面的站点
  • 准备部署到 Netlify 或 Vercel,并希望沿用仓库内已有配置

适合人群

  • 熟悉 Astro、React 与 Tailwind CSS,能直接修改组件和样式文件的开发者
  • 需要英语/西班牙语双语作品集,并愿意自行维护两套内容数据的用户
  • 接受以 bento 网格卡片作为主要信息呈现方式的个人站点

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    克隆仓库后先执行 corepack enable 以启用 packageManager 字段固定的 pnpm 版本,再运行 pnpm install

  2. 2

    使用 pnpm dev 启动开发服务器,用 pnpm check 做类型检查、pnpm build 构建生产版本

  3. 3

    英语内容改 src/lib/constants.ts,西班牙语内容改 src/lib/constants-es.ts;卡片文案在各双语组件的 strings 对象中

  4. 4

    网格列宽与间距在 src/components/bento/BentoGrid.astro 中调整,主题颜色在 src/styles/globals.css 中修改

  5. 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 原文

├── netlify.toml

README 原文
https://github.com/xexubonete/my-portfolio/blob/main/LICENSEhttps://github.com/xexubonete/my-portfolio/blob/main/README.md

依据完整 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])
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。