HomeStylesTemplates
StyleKit
StylesTemplates
  1. Home
  2. /Styles
  3. /Bento Grid
Style Catalog/便当盒布局

便当盒布局

Bento Grid

A
95/100Excellent

Irregular grid layout inspired by Japanese bento boxes, creating visual hierarchy through varied card sizes. Commonly used for portfolios and product showcases.

网格卡片不规则作品集现代moderncontemporarysleek简洁bento
View Full Showcase →Templates

Best For

网格 / 卡片 / 不规则

Primary Move

Use CSS Grid layout grid grid-cols-4

Watch Out

Do not make all cards the same size (loses Bento character)

Showcase Entry

Live preview of the showcase page. Click to explore the full experience.

View Full Showcase →

Color Palette

Primary

#18181b

Secondary

#fafafa

Accent 1

#3b82f6

Accent 2

#8b5cf6

Accent 3

#ec4899

Accent 4

#f97316

PromptsComponent PreviewExportsRatings & Feedback

Prompts

Hard + Soft Prompts

Copy and generate 便当盒布局 style interfaces with one click. Hard prompts enforce strict consistency, while soft prompts allow flexible implementation within the style direction.

Hard Prompt

High consistency, strictly enforces style rules

STYLEKIT_STYLE_REFERENCE
style_name: Bento Grid
style_slug: bento-grid
style_source: /styles/bento-grid

# Hard Prompt

Strictly follow the style rules below and maintain consistency. No style drift allowed.

## Requirements
- Prioritize style consistency first, then creative extension.
- When conflicts arise, treat prohibitions as the highest priority.
- Self-check before output: verify colors, typography, spacing, and interactions still match this style.

## Style Rules
# Bento Grid (便当盒布局) Design System

> 灵感源于日式便当盒的不规则网格布局,通过大小不一的卡片组合创造视觉层次,常用于作品集和产品展示。

## 核心理念

Bento Grid(便当盒布局)是一种源于日式便当盒分隔设计的现代布局风格。通过不同尺寸的卡片在网格中的组合排列,创造出既有秩序又富有变化的视觉效果。

核心理念:
- 模块化:每个区块独立但相互关联
- 层次感:通过尺寸差异突出重点内容
- 留白:适当间隙让布局呼吸
- 响应式:在不同屏幕上优雅适配
- Widget 把玩感:每张卡片如独立的 iOS 小组件

设计原则:
- 视觉一致性:所有组件必须遵循统一的视觉语言,从色彩到字体到间距保持谐调
- 层次分明:通过颜色深浅、字号大小、留白空间建立清晰的信息层级
- 交互反馈:每个可交互元素都必须有明确的 hover、active、focus 状态反馈
- 响应式适配:设计必须在移动端、平板、桌面端上保持一致的体验
- 无障碍性:确保色彩对比度符合 WCAG 2.1 AA 标准,所有交互元素可键盘访问

---

## Token 字典(精确 Class 映射)

### 边框
```
宽度: border
颜色: border-zinc-100 dark:border-zinc-800
圆角: rounded-2xl
```

### 阴影
```
小:   shadow-sm
中:   shadow-md
大:   shadow-lg
悬停: hover:shadow-md hover:-translate-y-0.5
聚焦: focus:shadow-md focus:ring-2 focus:ring-blue-500/20
```

### 交互效果
```
悬停位移: hover:-translate-y-0.5
过渡动画: transition-all duration-200
按下状态: active:scale-95
```

### 字体
```
标题: font-semibold text-zinc-900 dark:text-zinc-100
正文: text-zinc-600 dark:text-zinc-400
```

### 字号
```
Hero:  text-4xl md:text-5xl lg:text-6xl
H1:    text-3xl md:text-4xl
H2:    text-2xl md:text-3xl
H3:    text-xl md:text-2xl
正文:  text-sm md:text-base
小字:  text-xs
```

### 间距
```
Section: py-12 md:py-16 lg:py-20
容器:    px-4 md:px-6 lg:px-8
卡片:    p-4 md:p-6
```

---

## [FORBIDDEN] 绝对禁止

以下 class 在本风格中**绝对禁止使用**,生成时必须检查并避免:

### 禁止的 Class
- `rounded-none`
- `rounded-sm`
- `gap-1`
- `gap-2`
- `gap-8`
- `gap-10`
- `gap-12`

### 禁止的模式
- 匹配 `^rounded-none`
- 匹配 `^rounded-sm`

### 禁止原因
- `rounded-none`: Bento Grid requires rounded corners (rounded-xl, rounded-2xl, or rounded-3xl)
- `rounded-sm`: Bento Grid uses larger rounded corners for modern look
- `gap-1`: Bento Grid uses consistent medium gaps (gap-4 or gap-6)

> WARNING: 如果你的代码中包含以上任何 class,必须立即替换。

---

## [REQUIRED] 必须包含

### 按钮必须包含
```
px-4 py-2 md:px-6 md:py-3
rounded-xl
font-medium
transition-colors
```

### 卡片必须包含
```
rounded-2xl
border border-zinc-100 dark:border-zinc-800
shadow-sm
hover:shadow-md hover:-translate-y-0.5
transition-all duration-200
```

### 输入框必须包含
```
bg-zinc-50 dark:bg-zinc-800
border border-zinc-200 dark:border-zinc-700
rounded-xl
focus:outline-none focus:ring-2 focus:ring-blue-500/20
focus:border-blue-500
transition-all
```

---

## [COMPARE] 错误 vs 正确对比

### 按钮

[WRONG] **错误示例**(使用了圆角和模糊阴影):
```html
<button class="rounded-lg shadow-lg bg-blue-500 text-white px-4 py-2 hover:bg-blue-600">
  点击我
</button>
```

[CORRECT] **正确示例**(使用硬边缘、无圆角、位移效果):
```html
<button class="px-4 py-2 md:px-6 md:py-3 rounded-xl font-medium transition-colors bg-[#ff006e] text-white px-4 py-2 md:px-6 md:py-3">
  点击我
</button>
```

### 卡片

[WRONG] **错误示例**(使用了渐变和圆角):
```html
<div class="rounded-xl shadow-2xl bg-gradient-to-r from-purple-500 to-pink-500 p-6">
  <h3 class="text-xl font-semibold">标题</h3>
</div>
```

[CORRECT] **正确示例**(纯色背景、硬边缘阴影):
```html
<div class="rounded-2xl border border-zinc-100 dark:border-zinc-800 shadow-sm hover:shadow-md hover:-translate-y-0.5 transition-all duration-200 p-4 md:p-6">
  <h3 class="font-semibold text-zinc-900 dark:text-zinc-100 text-xl md:text-2xl">标题</h3>
</div>
```

### 输入框

[WRONG] **错误示例**(灰色边框、圆角):
```html
<input class="rounded-md border border-gray-300 px-3 py-2 focus:ring-2 focus:ring-blue-500" />
```

[CORRECT] **正确示例**(黑色粗边框、聚焦阴影):
```html
<input class="bg-zinc-50 dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-all px-3 py-2 md:px-4 md:py-3" placeholder="请输入..." />
```

---

## [TEMPLATES] 页面骨架模板

使用以下模板生成页面,只需替换 `{PLACEHOLDER}` 部分:

### 导航栏骨架
```html
<nav class="bg-white border-b-2 md:border-b-4 border-black px-4 md:px-8 py-3 md:py-4">
  <div class="flex items-center justify-between max-w-6xl mx-auto">
    <a href="/" class="font-black text-xl md:text-2xl tracking-wider">
      {LOGO_TEXT}
    </a>
    <div class="flex gap-4 md:gap-8 font-mono text-sm md:text-base">
      {NAV_LINKS}
    </div>
  </div>
</nav>
```

### Hero 区块骨架
```html
<section class="min-h-[60vh] md:min-h-[80vh] flex items-center px-4 md:px-8 py-12 md:py-0 bg-{ACCENT_COLOR} border-b-2 md:border-b-4 border-black">
  <div class="max-w-4xl mx-auto">
    <h1 class="font-black text-4xl md:text-6xl lg:text-8xl leading-tight tracking-tight mb-4 md:mb-6">
      {HEADLINE}
    </h1>
    <p class="font-mono text-base md:text-xl max-w-xl mb-6 md:mb-8">
      {SUBHEADLINE}
    </p>
    <button class="bg-black text-white font-black px-6 py-3 md:px-8 md:py-4 border-2 md:border-4 border-black shadow-[4px_4px_0px_0px_rgba(255,0,110,1)] md:shadow-[8px_8px_0px_0px_rgba(255,0,110,1)] hover:shadow-none hover:translate-x-[2px] hover:translate-y-[2px] transition-all text-sm md:text-base">
      {CTA_TEXT}
    </button>
  </div>
</section>
```

### 卡片网格骨架
```html
<section class="py-12 md:py-24 px-4 md:px-8">
  <div class="max-w-6xl mx-auto">
    <h2 class="font-black text-2xl md:text-4xl mb-8 md:mb-12">{SECTION_TITLE}</h2>
    <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 md:gap-6">
      <!-- Card template - repeat for each card -->
      <div class="bg-white border-2 md:border-4 border-black shadow-[4px_4px_0px_0px_rgba(0,0,0,1)] md:shadow-[8px_8px_0px_0px_rgba(0,0,0,1)] p-4 md:p-6 hover:shadow-[4px_4px_0px_0px_rgba(255,0,110,1)] md:hover:shadow-[8px_8px_0px_0px_rgba(255,0,110,1)] hover:-translate-y-1 transition-all">
        <h3 class="font-black text-lg md:text-xl mb-2">{CARD_TITLE}</h3>
        <p class="font-mono text-sm md:text-base text-gray-700">{CARD_DESCRIPTION}</p>
      </div>
    </div>
  </div>
</section>
```

### 页脚骨架
```html
<footer class="bg-black text-white py-12 md:py-16 px-4 md:px-8 border-t-2 md:border-t-4 border-black">
  <div class="max-w-6xl mx-auto">
    <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
      <div>
        <span class="font-black text-xl md:text-2xl">{LOGO_TEXT}</span>
        <p class="font-mono text-sm mt-4 text-gray-400">{TAGLINE}</p>
      </div>
      <div>
        <h4 class="font-black text-lg mb-4">{COLUMN_TITLE}</h4>
        <ul class="space-y-2 font-mono text-sm text-gray-400">
          {FOOTER_LINKS}
        </ul>
      </div>
    </div>
  </div>
</footer>
```

---

## [CHECKLIST] 生成后自检清单

**在输出代码前,必须逐项验证以下每一条。如有违反,立即修正后再输出:**

### 1. 圆角检查
- [ ] 搜索代码中的 `rounded-`
- [ ] 确认只有 `rounded-none` 或无圆角
- [ ] 如果发现 `rounded-lg`、`rounded-md` 等,替换为 `rounded-none`

### 2. 阴影检查
- [ ] 搜索代码中的 `shadow-`
- [ ] 确认只使用 `shadow-[Xpx_Xpx_0px_0px_rgba(...)]` 格式
- [ ] 如果发现 `shadow-lg`、`shadow-xl` 等,替换为正确格式

### 3. 边框检查
- [ ] 搜索代码中的 `border-`
- [ ] 确认边框颜色是 `border-black`
- [ ] 如果发现 `border-gray-*`、`border-slate-*`,替换为 `border-black`

### 4. 交互检查
- [ ] 所有按钮都有 `hover:shadow-none hover:translate-x-[2px] hover:translate-y-[2px]`
- [ ] 所有卡片都有 hover 效果(阴影变色或位移)
- [ ] 都包含 `transition-all`

### 5. 响应式检查
- [ ] 边框有 `border-2 md:border-4`
- [ ] 阴影有 `shadow-[4px...] md:shadow-[8px...]`
- [ ] 间距有 `p-4 md:p-6` 或类似的响应式值
- [ ] 字号有 `text-sm md:text-base` 或类似的响应式值

### 6. 字体检查
- [ ] 标题使用 `font-black`
- [ ] 正文使用 `font-mono`

> CRITICAL: **如果任何一项检查不通过,必须修正后重新生成代码。**

---

## [EXAMPLES] 示例 Prompt

### 1. 功能特性展示

产品功能的 Bento 网格布局

```
用 Bento Grid 风格展示产品的 6 个核心功能,要求:
1. 使用 CSS Grid 创建不规则网格布局
2. 突出功能占据 col-span-2 或 row-span-2
3. 每个卡片包含:图标、标题、简短描述
4. 卡片 hover 时 -translate-y-1 + scale-[1.01] + shadow 扩散
5. 内部图标 group-hover 时变色或 scale-110
6. 响应式:移动端单列,桌面端多列
所有卡片 rounded-2xl,统一 gap-4
```

### 2. 个人主页

个人信息和链接的 Bento 布局

```
用 Bento Grid 风格创建一个个人主页,要求:
1. 大卡片:个人照片 + 简介
2. 社交链接:小方块卡片,各一个图标,hover 时图标 scale-110 变色
3. 技能展示:横向长条卡片
4. 最新项目:中等大小卡片,带缩略图
5. 联系方式:底部全宽卡片
网格布局参考 Apple 风格,卡片 hover 上浮 + 微放大
```

### 3. 数据仪表盘

数据统计卡片的网格布局

```
用 Bento Grid 风格设计一个数据仪表盘,要求:
1. 大卡片:主要图表(占 2x2),hover 时 shadow 扩散
2. 数据卡片:关键指标数字 + 趋势,数字 group-hover 时变色
3. 列表卡片:最近活动或待办事项
4. 小卡片:快捷操作按钮,active:scale-95
5. 全宽卡片:时间线或进度条
使用 CSS Grid,所有卡片 rounded-2xl + hover 微动效
```

Soft Prompt

Preserves style direction, allows flexible implementation

STYLEKIT_STYLE_REFERENCE
style_name: Bento Grid
style_slug: bento-grid
style_source: /styles/bento-grid

# Soft Prompt

Maintain the overall style essence. Implementation details can be adjusted flexibly, but do not deviate from the core visual language.

## Style Signals
- 网格
- 卡片
- 不规则
- 作品集
- 现代
- modern

## Prefer
- Use CSS Grid layout grid grid-cols-4
- Cards span multiple rows or columns col-span-2, row-span-2
- Maintain consistent gaps gap-4 or gap-6
- Use rounded corners rounded-xl or rounded-2xl

## Avoid
- Do not make all cards the same size (loses Bento character)
- Do not use inconsistent gaps
- Do not overcrowd cards without whitespace

## Output Guidance
- Ensure overall style recognizability first, then refine details.
- Avoid over-engineering; maintain readability and maintainability.

Component Templates

Component Preview

按钮

Bento 风格按钮,微上浮 + 阴影扩散

Global Styles

Global CSS

css
/* Bento Grid 全局样式 */

/* 基础 Grid 容器 */
.bento-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

@media (max-width: 1024px) {
  .bento-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .bento-grid {
    grid-template-columns: 1fr;
  }
}

/* 卡片尺寸变体 */
.bento-lg {
  grid-column: span 2;
  grid-row: span 2;
}

.bento-wide {
  grid-column: span 2;
}

.bento-tall {
  grid-row: span 2;
}

/* Widget 卡片悬停 */
.bento-card {
  transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
  cursor: pointer;
}

.bento-card:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

.bento-card:active {
  transform: scale(0.98);
}

/* 卡片内图标联动 */
.bento-card:hover .bento-icon {
  transform: scale(1.1);
}

.bento-icon {
  transition: transform 0.3s ease-out, background-color 0.3s ease-out, color 0.3s ease-out;
}
/* Bento Grid Design Tokens */
:root {
  --bento-grid-primary: #18181b;
  --bento-grid-secondary: #fafafa;
  --bento-grid-accent: #3b82f6;
  --bento-grid-glow: rgba(24, 24, 27, 0.3);
}

@keyframes bento-grid-fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes bento-grid-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

.bento-grid-card {
  position: relative;
  overflow: hidden;
}

.bento-grid-card::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
  background: linear-gradient(135deg, rgba(24, 24, 27, 0.05), transparent);
  pointer-events: none;
}

.bento-grid-card:hover::before {
  opacity: 1;
}

.bento-grid-gradient {
  background: linear-gradient(135deg, #18181b, #3b82f6);
}

.bento-grid-gradient-text {
  background: linear-gradient(135deg, #18181b, #3b82f6);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.bento-grid-frosted {
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  background: rgba(24, 24, 27, 0.08);
}

.bento-grid-accent-corner {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 2rem), calc(100% - 2rem) 100%, 0 100%);
}

.bento-grid-animate-in {
  animation: bento-grid-fade-in 0.5s ease-out both;
}

Compatible Visual Styles

Try Pairing

便当盒布局 is a layout pattern that can be paired with the following visual styles.

Liquid Glass

Liquid Glass

新野兽派

Neo-Brutalist

编辑杂志风

Editorial

新拟物派

Neumorphism

IDE Integration

IDE Configuration Export

Download configuration files for AI coding assistants to generate code in this style.

Style Pack

Export Style Pack

Get complete machine-readable style assets including design tokens, Tailwind presets, CSS variables, and shadcn/ui themes.

Metadata

Style metadata including version information

Design Tokens

Compatible with Figma / Style Dictionary / Tokens Studio

Tailwind Preset

Tailwind CSS theme preset, import directly in config

Global CSS

CSS variables and base styles

shadcn Theme

shadcn/ui theme configuration

CSS Variables

Pure CSS variables, works with any project

SKILL.md

Loadable skill pack for Cursor / Claude Code / VS Code

Design Philosophy

Bento Grid is a modern layout style inspired by the compartmentalized design of Japanese bento boxes. Through combining cards of different sizes within a grid, it creates visual effects that are both orderly and varied.

Accessibility

Accessibility Score

WCAG 2.1 compliance analysis based on color contrast and typography readability.

95

Overall Score

Grade: A - Excellent

Contrast Ratios

Score: 100/100Average Ratio: 17.72:1
AA PassAAA Pass
ContextColorsRatioAAAAA
Button primary
/#ffffff / #18181b
17.72:1

Readability

Score

82/100

Font Size

text-sm md:text-base

Font Weight

font-semibold text-zinc-900 dark:text-zinc-100

Line Height

default

Scoring is based on WCAG 2.1 standards. AA requires 4.5:1 contrast for normal text, 3:1 for large text; AAA requires 7:1 for normal text, 4.5:1 for large text.

Design Recipes

Recommended Combinations with Bento Grid

These curated recipes combine this style with layouts and animations, optimized for specific use cases.

Modern SaaS Glass

Premium glass effects with bento grid layout. Perfect for AI/tech products.

liquid-glassbento-grid+3
moderneleganthigh-conversion

Pixel Art Style

8-bit charm for games and nostalgic projects.

pixel-artbento-grid+2
retroplayfulcreative

StyleKit

A curated web design style library to help AI generate better-looking websites.

Navigation

StylesTemplatesGuideBlogChangelog

Resources

UI Design PromptsLanding Page PromptsDashboard PromptsTailwind UI PromptsDark Mode UI PromptsGitHub Repository

Stay Updated

By subscribing, you agree to our Privacy Policy and Terms.


Support Maintenance

If StyleKit helps your workflow, voluntary support helps cover servers, domains, and ongoing upkeep.

Scan to support / View all options

(c) 2026 StyleKit. Open source project.

AboutContactPrivacyTermsBuilt with the Editorial style
Stylekit前端样式库stylekit.top陕ICP备2025065501号-3