Best For
comic style / comic book ui / manga
A design style inspired by comic books and manga, featuring heavy ink-line borders, halftone fills, speech bubbles, action lines, and panel layouts, full of narrative and visual impact.
Best For
comic style / comic book ui / manga
Primary Move
Use thick black borders border-4 border-black to simulate ink lines
Watch Out
Do NOT use soft shadows shadow-lg, shadow-xl, shadow-md
AI Implementation
Use the Hard Prompt by default to generate UI. Use the Design Spec to understand, modify, and review the style. Use the Creative Brief for early exploration.
Use this by default: copy it, append the concrete requirement, and let AI generate consistent production UI.
When to use
How to use
STYLEKIT_STYLE_REFERENCE
style_name: Comic Style
style_slug: comic-style
style_source: /styles/comic-style
# Hard Prompt
## When To Use
Use this when you want AI to generate code with strict style consistency. It is the safest default for production UI.
## How To Use
- Copy the full prompt into ChatGPT, Claude, Cursor, or another coding assistant.
- Append the concrete product/page requirement after the prompt.
- After generation, check the forbidden rules and interaction states before accepting the output.
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
You are a Comic Style design frontend development expert. All generated code must strictly follow these constraints:
## Absolute Prohibitions
- Using soft shadows shadow-lg, shadow-xl, shadow-md
- Using thin borders border, border-2
- Using gradients as main background bg-gradient-*
- Using rounded cards rounded-lg, rounded-xl (except speech bubbles)
- Using semi-transparent/blur effects backdrop-blur
- Using transition durations exceeding duration-100
## Must Follow
- Thick black borders border-4 border-black
- Hard-edge shadows shadow-[4px_4px_0_#000] or shadow-[6px_6px_0_#000]
- No border radii rounded-none (except speech bubbles)
- Uppercase bold text uppercase font-black
- High-contrast solid colors
- Button press effects (displacement + shadow disappears)
## Animation & Interaction Rules
- Pop-Art Explosion: Hover makes elements burst out exaggeratedly (hover:scale-110 hover:-rotate-3), like comic sound effect bubbles POW! BAM! exploding. Color inversion (e.g., hover:bg-[#ffcc00] hover:text-black) enhances drama.
- Halftone Reveal: Buttons/cards have hidden halftone dot backgrounds (radial-gradient), revealed via group-hover:opacity-10 (note: must use group-hover not hover, as the layer has pointer-events-none).
- Heavy Ink: On click (active), hard shadow instantly zeroes (active:shadow-none), paired with active:translate-x-2 active:translate-y-2, creating strong ink pressure feel.
- Badge Pop: Card group-hover reveals hidden NEW! label from scale-0 instantly to scale-100 (transition-transform duration-100).
- Shadow Amplification: Hover expands hard shadow from 8px to 16px, paired with -translate-y-2, enhancing comic "page flip" physical feel.
## Color Palette
Primary:
- Black: #1a1a1a (ink lines)
- White: #ffffff (panel background)
Accent colors:
- Red: #ff3333 (action, CTA)
- Yellow: #ffcc00 (labels, highlights)
- Blue: #3366ff (info, links)
- Green: #33cc33 (success)
## Special Effects
Halftone dots: background-image: radial-gradient(circle, #000 1px, transparent 1px) + bg-[size:4px_4px]
Speech bubbles: border-4 border-black rounded-3xl + triangle tail pseudo-element
Action lines: repeating-linear-gradient
Text effects: [text-shadow:3px_3px_0_#ff3333,-3px_-3px_0_#3366ff]
## Self-Check
After generating code, verify:
1. All elements have thick black borders border-4
2. Using hard-edge shadows not soft shadows
3. Text is uppercase bold
4. Button hover has scale-110 + rotate(-3deg) burst feel
5. Button active has shadow-none instant zeroing
6. Cards have group-hover triggered hidden elements
---
# Comic Style Design System
> A design style inspired by comic books and manga, featuring heavy ink-line borders, halftone fills, speech bubbles, action lines, and panel layouts, full of narrative and visual impact.
## Design Philosophy
Comic Style is a design style derived from comic books and manga, transforming interfaces into vivid comic panels through heavy ink-line borders, halftone dots, speech bubbles, and dynamic lines.
Core principles:
- Ink feel: Using thick black borders to outline element contours
- Halftone effect: Using halftone dots to simulate comic print texture
- Dynamism: Expressing energy and movement through speed lines and action lines
- Narrative: Each section is like a comic frame, telling a story
- Emotional burst: Interactions should be as exaggerated and powerful as POW! BAM!
---
## Token Dictionary (exact class mapping)
### Border
```
Width: border-4
Color: border-[#1a1a1a]
Radius: rounded-lg
```
### Shadow
```
sm: shadow-[3px_3px_0px_0px_rgba(26,26,26,1)] md:shadow-[4px_4px_0px_0px_rgba(26,26,26,1)]
md: shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] md:shadow-[6px_6px_0px_0px_rgba(26,26,26,1)]
lg: shadow-[6px_6px_0px_0px_rgba(26,26,26,1)] md:shadow-[10px_10px_0px_0px_rgba(26,26,26,1)]
hover: hover:shadow-[2px_2px_0px_0px_rgba(26,26,26,1)]
focus: focus:shadow-[4px_4px_0px_0px_rgba(26,26,26,1)]
```
### Interaction
```
Hover translate: hover:translate-x-[2px] hover:translate-y-[2px]
Hover scale: (none)
Hover opacity: (none)
Transition: transition-all duration-150
Active: active:translate-x-[4px] active:translate-y-[4px]
```
### Typefaces
```
Heading: font-black uppercase tracking-wide
Body: font-sans font-bold
Mono: font-mono
```
### Type scale
```
Hero: text-5xl md:text-7xl lg:text-8xl
H1: text-4xl md:text-5xl
H2: text-2xl md:text-4xl
H3: text-xl md:text-2xl
Body: text-sm md:text-base
Small: text-xs md:text-sm
```
### Spacing
```
Section: py-10 md:py-20 lg:py-28
Container: px-4 md:px-8 lg:px-12
Card: p-4 md:p-6
Gap sm: gap-2 md:gap-4
Gap md: gap-4 md:gap-6
Gap lg: gap-6 md:gap-8
```
### Color roles
```
Background primary: bg-[#fffef0]
Background secondary: bg-[#1a1a1a]
Background accent: bg-[#ef4444], bg-[#3b82f6], bg-[#facc15], bg-[#22c55e]
Text primary: text-[#1a1a1a]
Text secondary: text-white
Text muted: text-[#4a4a4a]
Button primary: bg-[#ef4444] text-white
Button secondary: bg-[#3b82f6] text-white
```
---
## [FORBIDDEN]
These classes are banned in this style. Check for them before returning code:
### Banned classes
- `border`
- `border-[0.5px]`
- `border-gray-200`
- `border-gray-300`
- `border-slate-200`
- `shadow-sm`
- `shadow`
- `shadow-md`
- `text-gray-400`
- `text-gray-500`
- `text-gray-300`
- `bg-gray-50`
- `bg-gray-100`
- `bg-slate-50`
- `opacity-50`
- `opacity-60`
- `font-light`
- `font-normal`
### Banned patterns
- matches `^border-(?:gray|slate)-`
- matches `^shadow-(?:sm|md|lg|xl)$`
- matches `^text-(?:gray|slate)-(?:[3-5])`
- matches `^bg-(?:gray|slate)-(?:[1-3])`
- matches `^font-(?:light|thin|normal)$`
### Why they are banned
- `border-gray-200`: Comic style uses thick black ink borders (border-4 border-[#1a1a1a])
- `shadow-md`: Comic style uses hard-edge offset shadows, not blurred
- `text-gray-400`: Comic style uses bold high-contrast text, not subtle muted colors
- `font-light`: Comic style uses bold/black font weights for impact
> WARNING: if your code contains any of the above, replace it before shipping.
---
## [REQUIRED]
### Every button must include
```
rounded-lg
border-4 border-[#1a1a1a]
shadow-[4px_4px_0px_0px_rgba(26,26,26,1)]
hover:translate-x-[2px] hover:translate-y-[2px]
hover:shadow-[2px_2px_0px_0px_rgba(26,26,26,1)]
transition-all duration-150
font-black uppercase
```
### Every card must include
```
rounded-lg
border-4 border-[#1a1a1a]
shadow-[4px_4px_0px_0px_rgba(26,26,26,1)]
bg-[#fffef0]
```
### Every input must include
```
rounded-lg
border-4 border-[#1a1a1a]
font-bold
focus:shadow-[4px_4px_0px_0px_rgba(26,26,26,1)]
focus:outline-none
```
---
## [COMPARE] Comic Style wrong vs right
The wrong examples below stand for generic library defaults that were never adapted to this style. Do not read them as visual suggestions.
### Button
[WRONG] **Wrong** (generic component library default, do not copy):
```html
<button class="{GENERIC_LIBRARY_BUTTON_DEFAULT}">
Click me
</button>
```
[CORRECT] **Right** (uses this style's tokens):
```html
<button class="rounded-lg border-4 border-[#1a1a1a] shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] hover:translate-x-[2px] hover:translate-y-[2px] hover:shadow-[2px_2px_0px_0px_rgba(26,26,26,1)] transition-all duration-150 font-black uppercase bg-[#ef4444] text-white">
Click me
</button>
```
### Card
[WRONG] **Wrong** (generic card, not adapted to this style):
```html
<div class="{GENERIC_LIBRARY_CARD_DEFAULT}">
<h3>{TITLE}</h3>
</div>
```
[CORRECT] **Right** (uses this style's card tokens):
```html
<div class="rounded-lg border-4 border-[#1a1a1a] shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] bg-[#fffef0] p-4 md:p-6">
<h3 class="font-black uppercase tracking-wide text-xl md:text-2xl">{TITLE}</h3>
</div>
```
### Input
[WRONG] **Wrong** (generic input, not adapted to this style):
```html
<input class="{GENERIC_LIBRARY_INPUT_DEFAULT}" />
```
[CORRECT] **Right** (uses this style's input tokens):
```html
<input class="rounded-lg border-4 border-[#1a1a1a] font-bold focus:shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] focus:outline-none" placeholder="{PLACEHOLDER}" />
```
---
## [TEMPLATES] Comic Style page skeletons
These skeletons use this style's tokens only. Replace `{PLACEHOLDER}` values, but keep every token in place:
### Navigation
```html
<nav class="bg-[#fffef0] text-[#1a1a1a] border-4 border-[#1a1a1a] px-4 md:px-8 lg:px-12">
<div class="flex items-center justify-between max-w-6xl mx-auto gap-4 md:gap-6">
<a href="/" class="font-black uppercase tracking-wide text-xl md:text-2xl">
{LOGO_TEXT}
</a>
<div class="flex gap-4 md:gap-6 font-sans font-bold text-xs md:text-sm">
{NAV_LINKS}
</div>
</div>
</nav>
```
### Hero section
```html
<section class="bg-[#ef4444] text-[#1a1a1a] py-10 md:py-20 lg:py-28 px-4 md:px-8 lg:px-12">
<div class="max-w-4xl mx-auto">
<h1 class="font-black uppercase tracking-wide text-5xl md:text-7xl lg:text-8xl">
{HEADLINE}
</h1>
<p class="font-sans font-bold text-sm md:text-base max-w-xl">
{SUBHEADLINE}
</p>
<button class="rounded-lg border-4 border-[#1a1a1a] shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] hover:translate-x-[2px] hover:translate-y-[2px] hover:shadow-[2px_2px_0px_0px_rgba(26,26,26,1)] transition-all duration-150 font-black uppercase bg-[#ef4444] text-white">
{CTA_TEXT}
</button>
</div>
</section>
```
### Card grid
```html
<section class="bg-[#fffef0] text-[#1a1a1a] py-10 md:py-20 lg:py-28 px-4 md:px-8 lg:px-12">
<div class="max-w-6xl mx-auto">
<h2 class="font-black uppercase tracking-wide text-2xl md:text-4xl">{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="rounded-lg border-4 border-[#1a1a1a] shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] bg-[#fffef0] p-4 md:p-6">
<h3 class="font-black uppercase tracking-wide text-xl md:text-2xl">{CARD_TITLE}</h3>
<p class="font-sans font-bold text-sm md:text-base text-[#4a4a4a]">{CARD_DESCRIPTION}</p>
</div>
</div>
</div>
</section>
```
### Form input
```html
<input class="rounded-lg border-4 border-[#1a1a1a] font-bold focus:shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] focus:outline-none" placeholder="{PLACEHOLDER}" />
```
### Footer
```html
<footer class="bg-[#1a1a1a] text-white py-10 md:py-20 lg:py-28 px-4 md:px-8 lg:px-12">
<div class="max-w-6xl mx-auto">
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-8">
<div>
<span class="font-black uppercase tracking-wide text-xl md:text-2xl">{LOGO_TEXT}</span>
<p class="font-sans font-bold text-xs md:text-sm">{TAGLINE}</p>
</div>
<div>
<h4 class="font-black uppercase tracking-wide text-xl md:text-2xl">{COLUMN_TITLE}</h4>
<ul class="font-sans font-bold text-xs md:text-sm">
{FOOTER_LINKS}
</ul>
</div>
</div>
</div>
</footer>
```
---
## [CHECKLIST] Comic Style post-generation self check
**Before returning code, verify every token and rule below. Fix any violation before delivering:**
### Token check
- [ ] Button includes: `rounded-lg border-4 border-[#1a1a1a] shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] hover:translate-x-[2px] hover:translate-y-[2px] hover:shadow-[2px_2px_0px_0px_rgba(26,26,26,1)] transition-all duration-150 font-black uppercase`
- [ ] Card includes: `rounded-lg border-4 border-[#1a1a1a] shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] bg-[#fffef0]`
- [ ] Input includes: `rounded-lg border-4 border-[#1a1a1a] font-bold focus:shadow-[4px_4px_0px_0px_rgba(26,26,26,1)] focus:outline-none`
### Forbidden check
- [ ] Not using `border`
- [ ] Not using `border-[0.5px]`
- [ ] Not using `border-gray-200`
- [ ] Not using `border-gray-300`
- [ ] Not using `border-slate-200`
- [ ] Not using `shadow-sm`
- [ ] Not using `shadow`
- [ ] Not using `shadow-md`
### Style rule check
- [ ] Use thick black borders border-4 border-black to simulate ink lines
- [ ] Use hard-edge shadows shadow-[4px_4px_0_#000] to simulate print offset
- [ ] Use speech bubble shapes to display information
- [ ] Use halftone dots as background texture
- [ ] Text uses uppercase bold uppercase font-black
### Style drift check
- [ ] Does not violate: Do NOT use soft shadows shadow-lg, shadow-xl, shadow-md
- [ ] Does not violate: Do NOT use thin borders border, border-2
- [ ] Does not violate: Do NOT use gradients as main visual effect
- [ ] Does not violate: Do NOT use overly formal typography
- [ ] Does not violate: Do NOT lack dynamism and energy
### Delivery check
- [ ] Responsive layout holds on phone, tablet and desktop with no horizontal overflow
- [ ] Every interactive element has a visible focus state, an accessible name and a reduced-motion path
- [ ] Text contrast meets WCAG AA and colour alone never carries state
- [ ] The result is still recognizable at a glance as Comic Style
## Absolute Bans (Match and Refuse)
If any of the following patterns appear, it is a style violation — rewrite without exception.
- use soft shadows shadow-lg, shadow-xl, shadow-md
- use thin borders border, border-2
- use gradients as main visual effect
- use overly formal typography
- lack dynamism and energy
- use rounded cards (rounded-lg, rounded-xl), except speech bubbles
- use transition durations exceeding duration-100
## Self-Check (Verify Before Shipping)
If any item fails, the style has drifted — fix before shipping.
- [ ] No purple-to-blue gradients
- [ ] No overused fonts (Inter, Roboto, Geist, Fraunces, Plus Jakarta Sans)
- [ ] No nested cards (cards inside cards)
- [ ] No gray text on colored backgrounds
- [ ] Body text contrast meets WCAG AA (>= 4.5:1)
- [ ] No bounce or elastic easing curves
- [ ] Animations have a prefers-reduced-motion fallback
- [ ] Body text line length capped at 65-75 characters
- [ ] No side-stripe accent borders (border-left/right > 1px)
- [ ] No gradient text (background-clip: text)
- [ ] No glassmorphism used as the default surface treatment
- [ ] No tiny uppercase tracked eyebrow labels above every section heading
- [ ] do NOT use soft shadows shadow-lg, shadow-xl, shadow-md
- [ ] do NOT use thin borders border, border-2
- [ ] do NOT use gradients as main visual effect
- [ ] do NOT use overly formal typography
- [ ] do NOT lack dynamism and energyMore prompt libraries: All UI Prompts · Tailwind UI Prompts · Dark Mode UI Prompts
Component Templates
漫画按钮,hover 夸张弹出 + 颜色翻转 + 网点浮现
Pointer Interactions
Pointer interactions tailored to this style — same cursor, completely different character. Move around the stage to feel it.
Frontend Readiness
This layer tracks whether the style is ready for real websites: theme modes, state feedback, keyboard access, and performance constraints.
Overall
51%
Fallback
Dark Mode
0%
MissingUI States
79%
PartialMotion
70%
PartialA11y
70%
PartialPerformance
35%
FallbackButton
Default / Hover / Focus Visible / Active / Disabled
Input
Default / Hover / Focus Visible / Disabled / Error
Card
Default / Hover / Focus Visible / Loading / Skeleton
Form
Default / Focus Visible / Disabled / Loading / Error
FAQ
/* Comic Style 全局样式 */
:root {
--comic-black: #1a1a1a;
--comic-white: #ffffff;
--comic-red: #ff3333;
--comic-yellow: #ffcc00;
--comic-blue: #3366ff;
--comic-green: #33cc33;
}
/* 半调网点背景 */
.comic-halftone {
background-image: radial-gradient(circle, var(--comic-black) 1px, transparent 1px);
background-size: 6px 6px;
}
/* 对话气泡 */
.comic-bubble {
position: relative;
background: white;
border: 4px solid var(--comic-black);
border-radius: 24px;
padding: 16px 20px;
}
.comic-bubble::after {
content: '';
position: absolute;
bottom: -20px;
left: 30px;
width: 0;
height: 0;
border-left: 12px solid transparent;
border-right: 12px solid transparent;
border-top: 20px solid var(--comic-black);
}
/* 动作线 */
.comic-speed-lines {
background: repeating-linear-gradient(
90deg,
transparent,
transparent 8px,
rgba(0, 0, 0, 0.05) 8px,
rgba(0, 0, 0, 0.05) 10px
);
}
/* 漫画面板边框 */
.comic-panel {
border: 4px solid var(--comic-black);
box-shadow: 6px 6px 0 var(--comic-black);
}
/* 漫画文字效果 */
.comic-text {
font-family: 'Comic Sans MS', 'Bangers', cursive, sans-serif;
font-weight: 900;
text-transform: uppercase;
}
/* 爆炸效果标签 — hover 时弹出 */
.comic-burst {
background: var(--comic-yellow);
border: 3px solid var(--comic-black);
font-weight: 900;
transform: rotate(-3deg) scale(0);
transition: transform 0.1s ease-out;
}
.group:hover .comic-burst {
transform: rotate(-3deg) scale(1);
}
/* Pop-art 按钮弹出 */
.comic-pop {
transition: all 0.1s ease-out;
cursor: crosshair;
}
.comic-pop:hover {
transform: scale(1.1) rotate(-3deg);
box-shadow: 10px 10px 0 var(--comic-black);
}
.comic-pop:active {
transform: scale(0.95) rotate(2deg) translate(4px, 4px);
box-shadow: none;
}
.comic-style-filter { filter: brightness(1.05) contrast(1.02); }
.comic-style-focus { outline: 2px solid var(--comic-style-primary, currentColor); outline-offset: 2px; }Related Styles
Explore these styles for ready-made tokens and components.
IDE Integration
Download configuration files for AI coding assistants to generate code in this style.
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
Comic Style is a design style derived from comic books and manga, transforming interfaces into vivid comic panels through heavy ink-line borders, halftone dots, speech bubbles, and dynamic lines.
WCAG 2.1 compliance analysis based on color contrast and typography readability.
Overall Score
Grade: C - Fair
Contrast Ratios
| Context | Colors | Ratio | AA | AAA |
|---|---|---|---|---|
| Text on background | /#1a1a1a / #fffef0 | 17.14:1 | ||
| Secondary text on background | /#ffffff / #fffef0 | 1.02:1 | ||
| Muted text on background | /#4a4a4a / #fffef0 | 8.73:1 | ||
| Text on secondary background | /#1a1a1a / #1a1a1a | 1:1 | ||
| Secondary text on secondary | /#ffffff / #1a1a1a | 17.4:1 | ||
| Button primary | /#ffffff / #ef4444 | 3.76:1 | ||
| Text on accent 1 | /#1a1a1a / #ef4444 | 4.62:1 | ||
| Alt text on accent 1 | /#ffffff / #ef4444 | 3.76:1 | ||
| Text on accent 2 | /#1a1a1a / #3b82f6 | 4.73:1 | ||
| Alt text on accent 2 | /#ffffff / #3b82f6 | 3.68:1 | ||
| Text on accent 3 | /#1a1a1a / #facc15 | 11.36:1 | ||
| Alt text on accent 3 | /#ffffff / #facc15 | 1.53:1 | ||
| Text on accent 4 | /#1a1a1a / #22c55e | 7.64:1 | ||
| Alt text on accent 4 | /#ffffff / #22c55e | 2.28:1 |
Readability
Score
87/100
Font Size
text-sm md:text-base
Font Weight
font-black uppercase tracking-wide
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.