skills/design-it-duotone-design/SKILL.md
Web and App implementation guide for Duotone Design. Trigger when user wants two-color schemes, striking imagery, and Spotify-like playlist aesthetics.
npx skillsauth add ranbot-ai/awesome-skills duotone-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
"Striking contrast. Photography and UI stripped down to exactly two clashing or complementary colors."
Use this sub-style when the user's request matches the aesthetic described above. This is a child reference of the design-it skill and is not meant to be triggered directly.
League Gothic, Oswald).mix-blend-mode and filters.:root {
--duo-dark: #1E0045; /* Deep Purple */
--duo-light: #CCFF00; /* Neon Lime */
}
body {
background-color: var(--duo-dark);
color: var(--duo-light);
}
/* CSS Duotone Image Effect */
.duotone-container {
position: relative;
width: 100%;
height: 400px;
background-color: var(--duo-light); /* Base color */
}
.duotone-container img {
width: 100%;
height: 100%;
object-fit: cover;
/* Convert image to grayscale, increase contrast */
filter: grayscale(100%) contrast(1.5);
/* Multiply the grayscale image against the light background */
mix-blend-mode: multiply;
}
.duotone-container::after {
/* Overlay the dark color using screen/lighten */
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background-color: var(--duo-dark);
mix-blend-mode: screen;
}
.duotone-btn {
background: var(--duo-light);
color: var(--duo-dark);
border: none;
font-weight: 900;
text-transform: uppercase;
padding: 16px 32px;
}
struct DuotoneImage: View {
let duoDark = Color(red: 0.12, green: 0.0, blue: 0.27) // #1E0045
let duoLight = Color(red: 0.8, green: 1.0, blue: 0.0) // #CCFF00
var body: some View {
ZStack {
// Background base color
duoLight.ignoresSafeArea()
// Image processing
Image("sample_photo")
.resizable()
.scaledToFill()
.grayscale(1.0)
.contrast(1.5)
.colorMultiply(duoLight) // Multiplies the light color into the grays
// Dark color overlay
duoDark
.blendMode(.screen) // Equivalent to CSS screen blend mode
.allowsHitTesting(false)
}
.frame(height: 400)
.clipped()
}
}
.grayscale(), boost .contrast(), then use .colorMultiply() and .blendMode(.screen) layers to map the two colors exactly like CSS mix-blend-mode.class DuotoneImage extends StatelessWidget {
final Color duoDark = const Color(0xFF1E0045);
final Color duoLight = const Color(0xFFCCFF00);
@override
Widget build(BuildContext context) {
return Container(
height: 400,
width: double.infinity,
color: duoLight,
child: Stack(
fit: StackFit.expand,
children: [
// 1. Grayscale & Contrast (using ColorFilter matrix)
// 2. Light Color Multiply
ColorFiltered(
colorFilter: ColorFilter.mode(duoLight, BlendMode.multiply),
child: ColorFiltered(
// Simple grayscale matrix
colorFilter: const ColorFilter.matrix([
0.2126, 0.7152, 0.0722, 0, 0,
0.2126, 0.7152, 0.0722, 0, 0,
0.2126, 0.7152, 0.0722, 0, 0,
0, 0, 0, 1, 0,
]),
child: Image.asset('assets/sample_photo.jpg', fit: BoxFit.cover),
),
),
// 3. Dark Color Screen Overlay
ColorFiltered(
colorFilter: ColorFilter.mode(duoDark, BlendMode.screen),
child: Container(color: Colors.transparent), // Applies filter to stack below
),
],
),
);
}
}
ColorFiltered widgets.ColorFilter.matrix to convert the image to grayscale first.BlendMode.multiply with the light color, then overlay the dark color using BlendMode.screen.// Real-time CSS-like blend modes do NOT exist natively in React Native.
// You must use react-native-skia or pre-process images.
import { Canvas, Image, useImage, ColorMatrix } from "@shopify/react-native-skia";
const DuotoneIma
tools
Use when a user asks to mine or update a private, evidence-backed work profile from local Claude Code, Codex, Copilot CLI, or OpenCode sessions.
data-ai
Use when diagnosing Android overheating, idle heat, thermal throttling, charging or radio heat, or abnormal battery drain with read-only ADB evidence and approval gates.
research
Research public competitor ads, analyze creative patterns and landing pages, and produce an evidence-labeled strategic teardown.
tools
Compiled CLI covering all 52 endpoints of the Anytype local API — objects, properties, tags, search, chat, files — one binary, no MCP server needed.