同一仓库提供 Next.js 项目与手写编译的纯 HTML 静态版本,两者共用 src/theme.css 设计令牌
seminar — Next.js 企业官网模板
作者 tailthemes
Seminar 是 tailthemes 发布的 MIT 许可 Next.js 在线课程模板,同时提供独立手写的纯 HTML 静态版本,面向以班期形式授课的课程站点。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
包含 7 条路由与 39 个单文件组件,覆盖课程目录、课程页、课程工作区、studio 与导师页面
亮暗模式通过根元素 class 切换,颜色、圆角、阴影与字号阶梯均以 68 个设计令牌定义
自托管 Instrument Sans、Karla、Spline Sans Mono 三款字体,并随附各自的 OFL 授权文本
除 React 与 Next.js 外仅依赖 lucide-react,另附 .claude/skills/ 下的 4 个 agent 技能文件
模板详细介绍
Seminar 是一个在线课程主题的网站模板,仓库中同时包含两个版本:src/ 下的 Next.js 项目,以及 html/dist/ 下无需构建步骤、可上传到任意静态托管的纯 HTML 站点。HTML 版本由 Nunjucks 源码在 html/src/ 下手写编译而成,并非从 React 导出,但两个版本共用同一份 src/theme.css 设计令牌。
模板覆盖学习者路径上的若干页面:课程目录、含排期与说明的课程页、课程工作区、用于存放进行中作品的 studio,以及导师页面,共 7 条路由(/、/courses、/course、/lesson、/studio、/mentors、/components),并拆分为 39 个单文件组件。
外观方面提供亮色与暗色两种模式,切换方式是根元素上的一个 class,两套取值都写在 src/theme.css 的令牌中,不使用 dark: 工具类,也不读取操作系统设置。字体为自托管的 Instrument Sans、Karla 与 Spline Sans Mono,各自附带 SIL Open Font License 1.1 授权文本。
使用限制方面:项目以 bun 为先,build:html 与 preview:html 直接调用 bun,因此 HTML 版本的构建与预览需要安装 bun;npm 可以完成安装与开发启动,但无法替代上述两个脚本。仓库由作者自有源码生成,维护方明确表示不接受 pull request,补丁会被下一次发布覆盖,建议改为提交 issue。模板中的图片由作者生成并纳入 MIT 授权,字体则按各自的 OFL 许可使用。
适合你的项目吗?
适用场景
- 搭建以班期或 cohort 形式授课的在线课程站点
- 需要同时交付可构建的 React 项目与可直接上传的静态 HTML 两套产物
- 希望通过修改单一令牌文件完成配色、圆角、阴影与字体的整体换肤
- 为课程站点准备亮色与暗色两种外观,且不依赖系统主题设置
适合人群
- 以班期形式授课、需要展示课程排期与导师信息的课程创作者
- 希望以 MIT 许可自由修改、商用与再分发的开发者
- 需要无构建步骤静态版本用于简单静态托管的场景
- 愿意使用 bun 完成 HTML 版本构建与预览的团队
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
使用 bun install 安装依赖,bun dev 启动开发服务器并访问 http://localhost:3000
- 2
HTML 版本的构建与预览脚本直接调用 bun,需先安装 bun,npm 无法替代这两个脚本
- 3
修改 html/src/ 下的 Nunjucks 源码后运行 bun run build:html,再用 bun run preview:html 在 http://localhost:4173 预览
- 4
换肤时只改 src/theme.css 中的令牌值并保留令牌名称,两个版本会同步生效,无需改动 src/components/
- 5
仓库由作者自有源码生成,不接受 pull request,问题请以 issue 形式提交
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- HTML 版本的构建与预览脚本直接调用 bun,必须安装 bun;npm 只能完成安装与开发启动,无法替代 build:html 与 preview:html。
- 仓库由作者自有源码生成,不接受 pull request,合并的补丁会被下一次发布覆盖;建议改为提交 issue。Fork 仍按 MIT 授权开放。
- 三款自托管字体按 SIL Open Font License 1.1 授权,不属于 MIT 授权范围;分发时须保留 src/fonts/ 中各字体旁的 OFL 授权文本。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
The project is bun first, and that is a real constraint rather than a preference: `npm install` and `npm run dev` work, but `build:html` and `preview:html` invoke `bun` directly, so the HTML edition needs it installed either way.
README 原文
This repository is generated from our own source, so a patch merged here is overwritten by the next release. Open an issue instead and the fix lands upstream, then comes back in the next version.
README 原文
https://github.com/tailthemes/seminar/blob/main/LICENSEhttps://github.com/tailthemes/seminar/blob/main/README.mdThe typefaces are not ours to relicense. Instrument Sans, Karla and Spline Sans Mono ship under the SIL Open Font License 1.1. Each family's license text sits verbatim beside its `.woff2` file in [`src/fonts/`](src/fonts). Keep those files with the fonts and you are within terms.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-01。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Next.js · React · HTML
- 网站类型
- 企业官网
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-17
- 截图检查日期
- 2026-10-01
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 279115c4e88f1c2d22217286de8fc67242c49e863459e32dde1ccbdd2367318a
2026-10-01T15:24:54.190Z
来源文件 / 仓库<p align="center"> <img src=".github/banner.png" alt="Seminar, a online course template for Next.js from tailthemes.com" width="100%"> </p> <p align="center"> <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-4ADE80?style=flat-square&labelColor=0B0D10"></a> <img alt="Version 1.4.0" src="https://img.shields.io/badge/version-1.4.0-1C2126?style=flat-square&labelColor=0B0D10"> <img alt="Tailwind CSS v4" src="https://img.shields.io/badge/Tailwind_CSS-v4-1C2126?style=flat-square&labelColor=0B0D10"> <img alt="Next.js 15" src="https://img.shields.io/badge/Next.js-15-1C2126?style=flat-square&labelColor=0B0D10"> <img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-strict-1C2126?style=flat-square&labelColor=0B0D10"> </p> # Seminar: online course template for Next.js Seminar is an online course template for Next.js, MIT licensed, for creators who teach in cohorts rather than selling recordings. It covers the whole path a learner walks: a catalog, a course page with its schedule and its promises, a lesson workspace, a studio where work in progress goes, and the mentors who read it. Two editions ship in this repository: a Next.js 15 project in `src/`, and an independently written static site in `html/dist/` that runs with no build step. [Live demo](https://tailthemes.com/preview/seminar?utm_source=github&utm_medium=readme&utm_campaign=seminar) · [Seminar on tailthemes.com](https://tailthemes.com/themes/seminar?utm_source=github&utm_medium=readme&utm_campaign=seminar) ## Light and dark   The mode is one class on the root element, and both sides of it are tokens in `src/theme.css`. There are no `dark:` utilities to keep in sync, and nothing reads the operating system setting behind your back. ## Quickstart ```sh bun install bun dev ``` Then open http://localhost:3000. The project is bun first, and that is a real constraint rather than a preference: `npm install` and `npm run dev` work, but `build:html` and `preview:html` invoke `bun` directly, so the HTML edition needs it installed either way. ## What's inside - **7 routes**: `/`, `/courses`, `/course`, `/lesson`, `/studio`, `/mentors`, `/components` - **39 components**, one file each, every one named in `theme.json` - **68 design tokens**, each with a dark counterpart, all in `src/theme.css` - **7 compiled HTML pages** in `html/dist/`, deployable as static files - **4 agent skills** in `.claude/skills/`: `add-page`, `add-section`, `check-quality`, `rebrand` - **3 typefaces** self hosted in `src/fonts/`: Instrument Sans, Karla and Spline Sans Mono - **1 dependency beyond React and Next.js**: `lucide-react` - `AGENTS.md`, the file map and invariants, written for the agent in your editor ## Rebrand in one file Every colour, radius, shadow and type step is a token in `src/theme.css`. Change the values, keep the names, and both editions follow. Nothing under `src/components/` needs an edit. Agents get the procedure in writing: point yours at `.claude/skills/rebrand`. ## The HTML edition `html/dist/` is the compiled site: 7 pages, one stylesheet, local fonts, local images, one vanilla script. Upload the folder to any static host. No Node, no framework, no build. Its source is Nunjucks under `html/src/`. After editing it: ```sh bun run build:html bun run preview:html # http://localhost:4173 ``` The HTML edition is written by hand, not exported from React. It imports the same `src/theme.css`, so one token table serves both editions. ## Issues welcome, pull requests closed This repository is generated from our own source, so a patch merged here is overwritten by the next release. Open an issue instead and the fix lands upstream, then comes back in the next version. Forking is open, which is what the MIT grant is for. ## License The theme is [MIT licensed](LICENSE). Use it in commercial work, modify it, ship it, resell what you build with it. No attribution required. The typefaces are not ours to relicense. Instrument Sans, Karla and Spline Sans Mono ship under the SIL Open Font License 1.1. Each family's license text sits verbatim beside its `.woff2` file in [`src/fonts/`](src/fonts). Keep those files with the fonts and you are within terms. Every image in the theme was generated by us and is covered by the MIT grant. No stock photography has ever entered a tailthemes.com theme. ## More themes [Seminar's page](https://tailthemes.com/themes/seminar?utm_source=github&utm_medium=readme&utm_campaign=seminar) has the full preview, the changelog and the download. [The catalog](https://tailthemes.com/templates?utm_source=github&utm_medium=readme&utm_campaign=seminar) has the rest: 3 more free themes and the paid ones, all built the same way.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

SaaS-Boilerplate
🚀🎉📚 SaaS Boilerplate built with Next.js + Tailwind CSS + Shadcn UI + TypeScript. ⚡️ Full-stack React applic…
Next.js · SaaS

Next-JS-Landing-Page-Starter-Template
🚀 Free NextJS Landing Page Template written in Tailwind CSS 3 and TypeScript ⚡️ Made with developer experienc…
Next.js · 企业官网

next-saas-starter
⚡️ Free Next.js responsive landing page template for SaaS products made using JAMStack architecture.
Next.js · SaaS

startup-nextjs
Startup is free Next.js template for SaaS startups comes with all the essential pages, components, and section…
Next.js · SaaS

shadcn-landing-page
New design 🎉 Nextjs + Shadcn + TypeScript + Tailwind. Landing page template ease-to-use
Next.js · 企业官网

shadcn-dashboard-landing-template
Accelerate your development with a sleek, open-source admin dashboard and landing page built on Vite-React, Ne…
Next.js · 后台
