Best For
impressionist design / oil painting style / Monet
Inspired by Impressionist masters like Monet and Renoir, featuring bold brushstroke textures, dappled light effects, pointillist colors, and warm canvas textures for a rich, oil-painting visual experience.
Best For
impressionist design / oil painting style / Monet
Primary Move
Use warm canvas color bg-[#f5f0e1] as background
Watch Out
No flat solid color fills (must have texture and gradients)
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: Impressionist Oil
style_slug: impressionist-oil
style_source: /styles/impressionist-oil
# 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 an Impressionist Oil design style frontend development expert. All generated code must strictly follow these constraints:
## Absolutely Forbidden
- Flat solid fills without texture or gradient
- Sharp geometric edges (rounded-none, rounded-sm)
- Pixel-perfect offset shadows (shadow-[Npx_Npx_0px])
- Neon or fluorescent colors
- Monospace fonts (font-mono)
- Uppercase text (uppercase)
- Pure black backgrounds (bg-black)
## Must Follow
- Canvas cream background bg-[#f5f0e1]
- Warm orange #e8a87c as primary, use linear-gradient fills on buttons
- Serif fonts font-serif font-bold for all text
- Rounded corners rounded-lg
- Layered box-shadows: solid color base + blur shadow (e.g. 0 4px 0 #c0392b, 0 6px 16px rgba())
- Brushstroke texture via repeating-linear-gradient at angled degrees
- Dappled light via multiple radial-gradient overlays
## Color Palette
Primary:
- Warm Orange: #e8a87c
- Canvas Cream: #f5f0e1
- Vermillion Red: #c0392b
- Deep Blue: #2c3e50
- Turquoise Green: #1abc9c
- Golden Light: #f5d88a
## Unique Elements (Impressionist-Only)
1. Brushstroke texture: repeating-linear-gradient at 25-40deg angles with 0.02 opacity color stops
2. Dappled light: multiple radial-gradient(circle Npx at X% Y%, rgba(...,0.05-0.08)) scattered across surfaces
3. Impasto shadows: layered box-shadow with solid color base layer + blurred spread layer
## Animation & Interaction Rules
### Dancing Light (Button Hover)
- hover:brightness-110 hover:contrast-125 -- simulates sunlight illuminating pigment
- Combined with hover:-translate-y-0.5 for subtle lift
- NEVER use flat color hover (defeats the impressionist light-play concept)
### Impasto Depression (Active Press)
- active:translate-y-[3px] -- button sinks into the 4px solid vermillion shadow layer
- NEVER use active:scale-* alone (scaling doesn't simulate physical impasto depth)
- The translate must match or nearly match the solid shadow offset (currently 4px)
### Brushstroke Reveal (Card Underline)
- Card heading underline: w-16 h-[3px] bg-[#e8a87c] rounded-full
- On group-hover: group-hover:w-24 -- brushstroke extends like paint spreading
- Transition: duration-500 ease-out (slow, painterly rhythm)
- Always use group class on card container
### Slow Easing Standard
- Minimum duration: 300ms (impressionist rhythm is slow and flowing)
- Button transitions: duration-300 ease-out
- Underline reveals: duration-500 ease-out
- NEVER use duration < 300ms
### Focus Ring
- focus:ring-2 focus:ring-[#e8a87c] focus:ring-offset-2 focus:ring-offset-[#f5f0e1]
- ring-offset-[#f5f0e1] mandatory -- canvas cream background needs matching offset
---
# Impressionist Oil Design System
> Inspired by Impressionist masters like Monet and Renoir, featuring bold brushstroke textures, dappled light effects, pointillist colors, and warm canvas textures for a rich, oil-painting visual experience.
## Design Philosophy
The Impressionist Oil style draws from the essence of 19th-century French Impressionist painting, emphasizing the interplay of light and shadow and the spontaneous expression of color.
Core principles:
- Dappled light: Multiple radial-gradient overlays simulate sunlight filtering through leaves
- Brushstroke texture: repeating-linear-gradient at varying angles creates visible brushstrokes on the canvas
- Impasto layering: Layered box-shadow (solid color base + blur shadow) simulates the thick, voluminous feel of paint
- Canvas texture: Warm cream base #f5f0e1 with feTurbulence weave filter
- Color harmony: Warm orange #e8a87c, vermillion #c0392b, deep blue #2c3e50, turquoise #1abc9c, golden light #f5d88a
---
## Token Dictionary (exact class mapping)
### Border
```
Width: border
Color: border-[#e8a87c]/25
Radius: rounded-lg
```
### Shadow
```
sm: shadow-[0_2px_0_rgba(192,57,43,0.10),0_3px_8px_rgba(232,168,124,0.15)]
md: shadow-[0_3px_0_rgba(192,57,43,0.12),0_5px_16px_rgba(232,168,124,0.20)]
lg: shadow-[0_4px_0_rgba(192,57,43,0.15),0_8px_24px_rgba(44,62,80,0.12)]
hover: hover:shadow-[0_4px_0_rgba(192,57,43,0.15),0_10px_28px_rgba(44,62,80,0.12)]
focus: focus:shadow-[0_0_0_3px_rgba(232,168,124,0.12)]
```
### Interaction
```
Hover translate: (none)
Hover scale: hover:brightness-110
Hover opacity: (none)
Transition: transition-all duration-300 ease-in-out
Active: active:translate-y-[2px]
```
### Typefaces
```
Heading: font-serif font-bold tracking-wide
Body: font-serif
Mono: font-mono
```
### Type scale
```
Hero: text-5xl md:text-7xl lg:text-8xl
H1: text-3xl md:text-5xl
H2: text-2xl md:text-3xl
H3: text-xl md:text-2xl
Body: text-sm md:text-base
Small: text-xs md:text-sm
```
### Spacing
```
Section: py-14 md:py-20 lg:py-28
Container: px-6 md:px-10 lg:px-14
Card: p-6 md:p-8
Gap sm: gap-4 md:gap-5
Gap md: gap-5 md:gap-6
Gap lg: gap-6 md:gap-10
```
### Color roles
```
Background primary: bg-[#f5f0e1]
Background secondary: bg-[#ede5d0]
Background accent: bg-[#e8a87c]/15, bg-[#c0392b]/10, bg-[#1abc9c]/10, bg-[#f5d88a]/10
Text primary: text-[#2c3e50]
Text secondary: text-[#e8a87c]
Text muted: text-[#2c3e50]/45
Button primary: text-[#2c3e50] shadow-[0_4px_0_#c0392b,0_6px_16px_rgba(232,168,124,0.30)]
Button secondary: text-[#f5f0e1] shadow-[0_4px_0_#1abc9c,0_6px_16px_rgba(44,62,80,0.30)]
```
---
## [FORBIDDEN]
These classes are banned in this style. Check for them before returning code:
### Banned classes
- `rounded-none`
- `rounded-sm`
- `shadow-[2px_2px_0px`
- `shadow-[3px_3px_0px`
- `shadow-[4px_4px_0px`
- `font-mono`
- `bg-black`
- `bg-[#0a0a1a]`
- `uppercase`
- `rounded-full`
### Banned patterns
- matches `^shadow-\[\d+px_\d+px_0px`
- matches `^font-mono$`
- matches `^bg-black$`
- matches `^uppercase$`
- matches `^rounded-full$`
### Why they are banned
- `font-mono`: Impressionist Oil uses serif fonts for artistic painterly feel
- `bg-black`: Impressionist Oil uses warm canvas backgrounds (#f5f0e1), never dark
- `rounded-none`: Impressionist Oil uses rounded-lg for soft painterly edges
- `uppercase`: Impressionist Oil uses elegant mixed-case serif, never aggressive uppercase
- `rounded-full`: Impressionist Oil uses rounded-lg, not fully circular shapes
> WARNING: if your code contains any of the above, replace it before shipping.
---
## [REQUIRED]
### Every button must include
```
rounded-lg
font-serif font-bold
transition-all duration-300 ease-in-out
```
### Every card must include
```
rounded-lg
bg-[#f5f0e1]
border border-[#e8a87c]/25
```
### Every input must include
```
rounded-lg
border-2 border-[#e8a87c]/25
bg-[#f5f0e1]
font-serif
focus:outline-none
```
---
## [COMPARE] Impressionist Oil 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 font-serif font-bold transition-all duration-300 ease-in-out text-[#2c3e50] shadow-[0_4px_0_#c0392b,0_6px_16px_rgba(232,168,124,0.30)]">
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 bg-[#f5f0e1] border border-[#e8a87c]/25 p-6 md:p-8">
<h3 class="font-serif font-bold 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-2 border-[#e8a87c]/25 bg-[#f5f0e1] font-serif focus:outline-none" placeholder="{PLACEHOLDER}" />
```
---
## [TEMPLATES] Impressionist Oil page skeletons
These skeletons use this style's tokens only. Replace `{PLACEHOLDER}` values, but keep every token in place:
### Navigation
```html
<nav class="bg-[#f5f0e1] text-[#2c3e50] border border-[#e8a87c]/25 px-6 md:px-10 lg:px-14">
<div class="flex items-center justify-between max-w-6xl mx-auto gap-5 md:gap-6">
<a href="/" class="font-serif font-bold tracking-wide text-xl md:text-2xl">
{LOGO_TEXT}
</a>
<div class="flex gap-5 md:gap-6 font-serif text-xs md:text-sm">
{NAV_LINKS}
</div>
</div>
</nav>
```
### Hero section
```html
<section class="bg-[#e8a87c]/15 text-[#2c3e50] py-14 md:py-20 lg:py-28 px-6 md:px-10 lg:px-14">
<div class="max-w-4xl mx-auto">
<h1 class="font-serif font-bold tracking-wide text-5xl md:text-7xl lg:text-8xl">
{HEADLINE}
</h1>
<p class="font-serif text-sm md:text-base max-w-xl">
{SUBHEADLINE}
</p>
<button class="rounded-lg font-serif font-bold transition-all duration-300 ease-in-out text-[#2c3e50] shadow-[0_4px_0_#c0392b,0_6px_16px_rgba(232,168,124,0.30)]">
{CTA_TEXT}
</button>
</div>
</section>
```
### Card grid
```html
<section class="bg-[#f5f0e1] text-[#2c3e50] py-14 md:py-20 lg:py-28 px-6 md:px-10 lg:px-14">
<div class="max-w-6xl mx-auto">
<h2 class="font-serif font-bold tracking-wide text-2xl md:text-3xl">{SECTION_TITLE}</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5 md:gap-6">
<!-- Card template - repeat for each card -->
<div class="rounded-lg bg-[#f5f0e1] border border-[#e8a87c]/25 p-6 md:p-8">
<h3 class="font-serif font-bold tracking-wide text-xl md:text-2xl">{CARD_TITLE}</h3>
<p class="font-serif text-sm md:text-base text-[#2c3e50]/45">{CARD_DESCRIPTION}</p>
</div>
</div>
</div>
</section>
```
### Form input
```html
<input class="rounded-lg border-2 border-[#e8a87c]/25 bg-[#f5f0e1] font-serif focus:outline-none" placeholder="{PLACEHOLDER}" />
```
### Footer
```html
<footer class="bg-[#ede5d0] text-[#e8a87c] py-14 md:py-20 lg:py-28 px-6 md:px-10 lg:px-14">
<div class="max-w-6xl mx-auto">
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-10">
<div>
<span class="font-serif font-bold tracking-wide text-xl md:text-2xl">{LOGO_TEXT}</span>
<p class="font-serif text-xs md:text-sm">{TAGLINE}</p>
</div>
<div>
<h4 class="font-serif font-bold tracking-wide text-xl md:text-2xl">{COLUMN_TITLE}</h4>
<ul class="font-serif text-xs md:text-sm">
{FOOTER_LINKS}
</ul>
</div>
</div>
</div>
</footer>
```
---
## [CHECKLIST] Impressionist Oil post-generation self check
**Before returning code, verify every token and rule below. Fix any violation before delivering:**
### Token check
- [ ] Button includes: `rounded-lg font-serif font-bold transition-all duration-300 ease-in-out`
- [ ] Card includes: `rounded-lg bg-[#f5f0e1] border border-[#e8a87c]/25`
- [ ] Input includes: `rounded-lg border-2 border-[#e8a87c]/25 bg-[#f5f0e1] font-serif focus:outline-none`
### Forbidden check
- [ ] Not using `rounded-none`
- [ ] Not using `rounded-sm`
- [ ] Not using `shadow-[2px_2px_0px`
- [ ] Not using `shadow-[3px_3px_0px`
- [ ] Not using `shadow-[4px_4px_0px`
- [ ] Not using `font-mono`
- [ ] Not using `bg-black`
- [ ] Not using `bg-[#0a0a1a]`
### Style rule check
- [ ] Use warm canvas color bg-[#f5f0e1] as background
- [ ] Use linear-gradient on buttons to simulate paint tube squeeze texture
- [ ] Use layered box-shadow (solid base + blur spread) to simulate impasto shadows
- [ ] Use repeating-linear-gradient as card background texture to simulate brushstroke direction
- [ ] Add radial-gradient light spot overlays to simulate dappled light
### Style drift check
- [ ] Does not violate: No flat solid color fills (must have texture and gradients)
- [ ] Does not violate: No sharp geometric corners (rounded-none/rounded-sm)
- [ ] Does not violate: No neon or fluorescent colors
- [ ] Does not violate: No monospace fonts (font-mono)
- [ ] Does not violate: No uppercase text (uppercase)
### 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 Impressionist Oil
## Absolute Bans (Match and Refuse)
If any of the following patterns appear, it is a style violation — rewrite without exception.
- flat solid color fills (must have texture and gradients)
- sharp geometric corners (rounded-none/rounded-sm)
- neon or fluorescent colors
- monospace fonts (font-mono)
- uppercase text (uppercase)
- pixel-precise offset shadows (shadow-[Npx_Npx_0px])
- Buttons must not lack active:translate-y-[3px] (solid shadow without press-in feel = inauthentic button)
- focus:ring must not lack focus:ring-offset-[#f5f0e1] (focus ring needs offset separation on canvas background)
## 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
- [ ] no flat solid color fills (must have texture and gradients)
- [ ] no sharp geometric corners (rounded-none/rounded-sm)
- [ ] no neon or fluorescent colors
- [ ] no monospace fonts (font-mono)
- [ ] no uppercase text (uppercase)More prompt libraries: All UI Prompts · Tailwind UI Prompts · Dark Mode UI Prompts
Component Templates
油画印象派颜料管按钮:hover:brightness-110 hover:contrast-125 模拟颜料在阳光下闪耀,active:translate-y-[3px] 与 4px 实色阴影配合产生陷入感,focus:ring-offset-[#f5f0e1] 画布色底
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
/* Impressionist Oil Global Styles */
:root {
--imp-orange: #e8a87c;
--imp-canvas: #f5f0e1;
--imp-vermillion: #c0392b;
--imp-blue: #2c3e50;
--imp-turquoise: #1abc9c;
--imp-gold: #f5d88a;
}
/* Canvas weave texture overlay */
.imp-canvas::after {
content: "";
position: absolute;
inset: 0;
background-image:
repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(44,62,80,0.03) 3px, transparent 4px),
repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(44,62,80,0.02) 3px, transparent 4px);
opacity: 0.04;
pointer-events: none;
}
/* Dappled light overlay - scattered radial gradient spots */
.imp-dapple::before {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(circle 80px at 20% 15%, rgba(245,216,138,0.08) 0%, transparent 100%),
radial-gradient(circle 100px at 45% 10%, rgba(232,168,124,0.06) 0%, transparent 100%),
radial-gradient(circle 70px at 75% 20%, rgba(245,216,138,0.07) 0%, transparent 100%),
radial-gradient(circle 90px at 90% 60%, rgba(232,168,124,0.05) 0%, transparent 100%);
pointer-events: none;
}
/* Brushstroke texture as repeating-linear-gradient */
.imp-brushstroke {
background-image: repeating-linear-gradient(
25deg,
transparent,
transparent 15px,
rgba(232,168,124,0.02) 15px,
transparent 16px
);
}
/* Brushstroke underline decoration */
.imp-stroke {
position: relative;
display: inline-block;
}
.imp-stroke::after {
content: "";
position: absolute;
bottom: -4px;
left: -5%;
width: 110%;
height: 6px;
background: var(--imp-orange);
opacity: 0.5;
border-radius: 50%;
transform: rotate(-1deg);
}
/* Pointillism dot background */
.imp-dots {
background-image:
radial-gradient(circle, var(--imp-orange) 0.8px, transparent 0.8px),
radial-gradient(circle, var(--imp-vermillion) 0.6px, transparent 0.6px);
background-size: 12px 12px, 8px 8px;
background-position: 0 0, 4px 4px;
opacity: 0.06;
}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
The Impressionist Oil style draws from the essence of 19th-century French Impressionist painting, emphasizing the interplay of light and shadow and the spontaneous expression of color.
WCAG 2.1 compliance analysis based on color contrast and typography readability.
Overall Score
Grade: D - Poor
Contrast Ratios
| Context | Colors | Ratio | AA | AAA |
|---|---|---|---|---|
| Text on background | /#2c3e50 / #f5f0e1 | 9.64:1 | ||
| Secondary text on background | /#e8a87c / #f5f0e1 | 1.79:1 | ||
| Muted text on background | /#2c3e50 / #f5f0e1 | 9.64:1 | ||
| Text on secondary background | /#2c3e50 / #ede5d0 | 8.74:1 | ||
| Secondary text on secondary | /#e8a87c / #ede5d0 | 1.62:1 | ||
| Button primary | /#2c3e50 / #2c3e50 | 1:1 | ||
| Text on accent 1 | /#2c3e50 / #e8a87c | 5.4:1 | ||
| Alt text on accent 1 | /#e8a87c / #e8a87c | 1:1 | ||
| Text on accent 2 | /#2c3e50 / #c0392b | 2.02:1 | ||
| Alt text on accent 2 | /#e8a87c / #c0392b | 2.67:1 | ||
| Text on accent 3 | /#2c3e50 / #1abc9c | 4.56:1 | ||
| Alt text on accent 3 | /#e8a87c / #1abc9c | 1.18:1 | ||
| Text on accent 4 | /#2c3e50 / #f5d88a | 7.88:1 | ||
| Alt text on accent 4 | /#e8a87c / #f5d88a | 1.46:1 |
Readability
Score
87/100
Font Size
text-sm md:text-base
Font Weight
font-serif font-bold 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.