Film Noir
黑色电影
stylekitMITRetro · retroLight and dark · bothMedium · mediumNeutral · neutralMuted · mutedSerif · serifGeneral · generalLanding · landing
源自 1940-50 年代经典黑色电影的戏剧性视觉风格。极致的明暗对比、深沉的灰阶层次、斜线光影和神秘氛围,适合故事驱动的产品、摄影作品集和高端品牌。
NNorthwind
Product · PricingSpecimen
Make the work feel finished
One interface, dressed in this style. Compare type, color, radius, and density.
128
Active
4.8
Score
12ms
Edge
Attribution
"Film Noir" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/film-noir @ bfa7da909e86.
https://github.com/AnxForever/stylekit · api/styles/film-noir · bfa7da909e86 · © AnxForever
Do
- 背景使用深黑 bg-[#0a0a0a] 或 bg-neutral-950
- 文字使用灰白色 text-neutral-100 text-neutral-300
- 使用衬线字体作标题 font-serif italic
- 卡片使用极微妙的灰色区分层次 bg-neutral-900 bg-neutral-800
- 强调元素使用猩红色 text-[#c41e3a](极少量)
- 使用线性渐变模拟光影效果
- 边框极细或无边框 border-neutral-800
- hover 效果使用亮度变化而非颜色变化
Don't
- 禁止使用彩色背景
- 禁止使用高饱和度颜色(猩红仅作点缀)
- 禁止使用圆角过大 rounded-2xl+
- 禁止使用卡通/可爱元素
- 禁止使用阴影发光效果
- 禁止使用渐变按钮
- 禁止按钮缺少 active:scale-[0.98](无触觉确认=按钮如同装饰)
- 禁止 focus:ring 缺少 focus:ring-offset-neutral-950(深色背景上焦点环必须与元素分离才可见)
Prompt
Create a detective story portfolio using Film Noir style: - Near-black background with subtle grey card layers - Serif italic headings for dramatic titles - Diagonal light shaft effects across cards - Minimal crimson accent lines for emphasis - Uppercase tracking labels for metadata - Vintage newspaper-inspired typography - Mysterious atmospheric hover effects --- "Film Noir" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/film-noir @ bfa7da909e86. powered by Styledex — https://styledex.dev
Tokens
DTCG
{
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
"$description": "Film Noir. \"Film Noir\" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/film-noir @ bfa7da909e86.",
"$extensions": {
"dev.styledex": {
"id": "stylekit-film-noir",
"license": "MIT",
"attribution": "\"Film Noir\" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/film-noir @ bfa7da909e86.",
"banner": "powered by Styledex — https://styledex.dev"
}
},
"color": {
"background": {
"$type": "color",
"$value": "#0a0a0a"
},
"foreground": {
"$type": "color",
"$value": "#f5f5f5"
},
"card": {
"$type": "color",
"$value": "#0a0a0a"
},
"card-foreground": {
"$type": "color",
"$value": "#f5f5f5"
},
"primary": {
"$type": "color",
"$value": "#1a1a1a"
},
"primary-foreground": {
"$type": "color",
"$value": "#fafaf9"
},
"secondary": {
"$type": "color",
"$value": "#f5f5f0"
},
"secondary-foreground": {
"$type": "color",
"$value": "#f5f5f5"
},
"accent": {
"$type": "color",
"$value": "#c41e3a"
},
"accent-foreground": {
"$type": "color",
"$value": "#fafaf9"
},
"muted": {
"$type": "color",
"$value": "#191919"
},
"muted-foreground": {
"$type": "color",
"$value": "#9f9f9f"
},
"border": {
"$type": "color",
"$value": "#2c2c2c"
},
"destructive": {
"$type": "color",
"$value": "#dc2626"
},
"ring": {
"$type": "color",
"$value": "#1a1a1a"
}
},
"font": {
"sans": {
"$type": "fontFamily",
"$value": [
"ui-sans-serif",
"system-ui",
"sans-serif"
]
},
"serif": {
"$type": "fontFamily",
"$value": [
"ui-serif",
"Georgia",
"serif"
]
},
"mono": {
"$type": "fontFamily",
"$value": [
"ui-monospace",
"SFMono-Regular",
"Menlo",
"monospace"
]
}
},
"radius": {
"base": {
"$type": "dimension",
"$value": "0px"
}
},
"spacing": {
"base": {
"$type": "dimension",
"$value": "1rem"
}
},
"shadow": {
"base": {
"$type": "shadow",
"$value": "0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04)"
}
}
}
CSS
/* powered by Styledex — https://styledex.dev */
/* "Film Noir" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/film-noir @ bfa7da909e86. */
:root {
--background: #0a0a0a;
--foreground: #f5f5f5;
--card: #0a0a0a;
--card-foreground: #f5f5f5;
--primary: #1a1a1a;
--primary-foreground: #fafaf9;
--secondary: #f5f5f0;
--secondary-foreground: #f5f5f5;
--accent: #c41e3a;
--accent-foreground: #fafaf9;
--muted: #191919;
--muted-foreground: #9f9f9f;
--border: #2c2c2c;
--destructive: #dc2626;
--ring: #1a1a1a;
--radius: 0px;
--font-sans: ui-sans-serif, system-ui, sans-serif;
--font-serif: ui-serif, Georgia, serif;
--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
--spacing: 1rem;
--shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04);
}
Tailwind
/* powered by Styledex — https://styledex.dev */
/* "Film Noir" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/film-noir @ bfa7da909e86. */
/** Tailwind theme extend for Film Noir (stylekit-film-noir) */
module.exports = {
"theme": {
"extend": {
"colors": {
"background": "#0a0a0a",
"foreground": "#f5f5f5",
"card": "#0a0a0a",
"primary": "#1a1a1a",
"primary-foreground": "#fafaf9",
"secondary": "#f5f5f0",
"accent": "#c41e3a",
"muted": "#191919",
"border": "#2c2c2c",
"destructive": "#dc2626",
"ring": "#1a1a1a"
},
"borderRadius": {
"lg": "0px"
},
"fontFamily": {
"sans": [
"ui-sans-serif",
"system-ui",
"sans-serif"
],
"serif": [
"ui-serif",
"Georgia",
"serif"
],
"mono": [
"ui-monospace",
"SFMono-Regular",
"Menlo",
"monospace"
]
},
"boxShadow": {
"styledex": "0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04)"
}
}
}
};
shadcn
/* powered by Styledex — https://styledex.dev */
/* "Film Noir" from https://github.com/AnxForever/stylekit (MIT). © AnxForever. api/styles/film-noir @ bfa7da909e86. */
@layer base {
:root {
--background: #0a0a0a;
--foreground: #f5f5f5;
--card: #0a0a0a;
--card-foreground: #f5f5f5;
--primary: #1a1a1a;
--primary-foreground: #fafaf9;
--secondary: #f5f5f0;
--secondary-foreground: #f5f5f5;
--accent: #c41e3a;
--accent-foreground: #fafaf9;
--muted: #191919;
--muted-foreground: #9f9f9f;
--border: #2c2c2c;
--destructive: #dc2626;
--ring: #1a1a1a;
--radius: 0px;
--font-sans: ui-sans-serif, system-ui, sans-serif;
--font-serif: ui-serif, Georgia, serif;
--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
--spacing: 1rem;
--shadow: 0 1px 2px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.04);
}
}