Skip to content

DirectorySkills

Colour block quotes: 1440, made in this run
Run 1Colour block quotes“Make bold colourful review blocks for our hot sauce brand site. Reviews in brief.md.”
Runs in
  • Claude Code
  • Codex
  • Cursor
  • Gemini CLI
  • GitHub Copilot
  • OpenCode
Generates with
Your agent's model
Tested with
Claude Code 2.1.322Claude Sonnet 5.51 real run, 12 Nov
Needs
Node 20+Chrome
Licence
Recaply licence

Colour Block Quotes

Four testimonials, each set big and bold on its own flat colour block in a 2 by 2 grid.

$9.99once, yours to keep

Builds testimonials on bold, flat colour blocks into your own project: a 2 by 2 grid of flat colour blocks (cobalt, tomato, lime and plum), each with a quote set big in a chunky display face, a small portrait and the name; text colour chosen per block for contrast. Plain HTML, CSS and JavaScript, or matched to React, Next.js, Vue, Svelte, Astro or Tailwind when the project uses them. Comes with a working reference and a check that screenshots it at phone, tablet and desktop widths and flags sideways overflow, text under 12px, missing alt text and names, low contrast, no focus styles, motion that ignores reduced motion, leftover sample words and emoji icons. Use when a bold consumer brand, food or drink, fashion, festival or kids product wants loud, graphic testimonials, or someone asks for colour-block or bold coloured testimonials.

By RecaplyUpdated 12 Nov

Install Colour Block Quotes

After the download, ask your agent to add it, or run the line yourself.

Read https://recaply.co/skills/colour-block-quotes/install.md and follow it to install the colour-block-quotes skill from colour-block-quotes.zip.

Paste it into your agent. It reads our install steps, finds the ZIP you downloaded and adds the skill for you.

New to skills? How to install a skill

Similar skills

All 735 skills

Who Colour Block Quotes is for

What you get

  • One HTML file with its CSS inside: no build step, no framework
  • Testimonials on bold, flat colour blocks
  • Checked at phone and desktop widths

Good fit

  • When a bold consumer brand, food or drink, fashion, festival or kids product wants loud, graphic testimonials

Not for

  • An app with a backend, sign-in or a database
  • Copying another company's site

About this skill

You say

Make bold colourful review blocks for our hot sauce brand site. Reviews in brief.md.

It said back

I built the review section as four flat colour blocks in a 2 by 2 grid on desktop and one column on phones. The check passes at 390, 768 and 1440 px. It found no sideways scrolling, text under 12px, contrast problems, missing focus styles or leftover sample words. I read the 390 and 1440 screenshots and nothing is cut off or overlapping. I didn't open the 768 one.

Files (in the work folder):

  • index.html
  • style.css
  • script.js
Show more

What it did in run 1

  1. colour-block-quotes
  2. ls -la && cat brief.md
  3. cd ./.claude/skills/colour-block-quotes && ls -R . | head -30 && cat reference/index.html reference/style.css reference/script.js
  4. cd . && S=.claude/skills/colour-block-quotes && cp $S/reference/script.js script.js && python3 - <<'EOF' import re css=open('.claude/skills/colour-block-quotes/reference/style.css').read() css=css.replace("--bg:#FFFDF6","--bg:#FFF4E0").replace("--ink:#14110F","--ink:#16100C").replace("--muted:#4C4640","--muted:#4A3B30").replace("--line:#14110F","--line:#16100C").replace("--accent:#14110F","--accent:#16100C").replace("--em:#14110F","--em:#C73A00") css=css.replace("--cobalt:#2244CC","--black:#16100C").replace("--tomato:#EE5A44","--fire:#FF5A1F").replace("--lime:#C6F04D","--cream:#FFE3B0").replace("--plum:#5A1F5E","--ember:#A3200F") i=css.index(".b0{") j=css.index("@media (max-width:760px)") new=""".b0{background:var(--black);color:#FFF4E0}.b0 .role{color:#FFD9A8}.b0 .face{background:var(--fire);color:#16100C;border-color:#FFF4E0} .b1{background:var(--fire);color:#16100C}.b1 .role{color:#2A0E04}.b1 .face{background:#FFF4E0} .b2{background:var(--cream);color:#16100C}.b2 .role{color:#4A2A0A}.b2 .face{background:var(--fire)} .b3{background:var(--ember);color:#FFF4E0}.b3 .role{color:#FFE3C8}.b3 .face{background:#16100C} .cb-b .face{display:grid;place-items:center;font-family:var(--font-display);font-size:1.05rem;line-height:1} .cb-b .face{color:inherit}.b0 .face{color:#16100C} """ css=css[:i]+new+css[j:] open('style.css','w').write(css) q=[("Put it on eggs. Then on everything.","Kofi","Chipotle Smoke"),("Hot but you can still taste the mango.","Lena","Mango Ghost"),("The only sauce my dad asks for by name.","Marisol","Habanero Garlic"),("Three drops in a Bloody Mary and you will never go back.","Owen","Smoked Scotch Bonnet")] li="".join(f'<li class="cb-b b{n} reveal"><figure><blockquote><p>{t}</p></blockquote><figcaption class="who"><span class="face" aria-hidden="true">{w[0]}</span><span><b>{w}</b><span class="role">Loves {s}</span></span></figcaption></figure></li>' for n,(t,w,s) in enumerate(q)) html=f'''<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Ember &amp; Ash hot sauce: what fans say</title> <meta name="description" content="Four Ember &amp; Ash fans on the sauces they love, from Chipotle Smoke to Smoked Scotch Bonnet."> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Dela+Gothic+One&family=DM+Sans:opsz,wght@9..40,400;9..40,600;9..40,700&display=swap"> <link rel="stylesheet" href="style.css"> </head> <body> <a class="skip" href="#main">Skip to content</a> <main id="main"> <section class="t-sec" id="fans" aria-labelledby="fans-h"><div class="sec-head"><h2 id="fans-h">Fans, <em>on fire</em></h2><p class="sub">Four Ember &amp; Ash fans, in their own words.</p></div><ul class="wrap cb">{li}</ul></section> </main> <script src="script.js" defer></script> </body> </html>''' open('index.html','w').write(html) EOF node $S/scripts/check.mjs index.html --out check 2>&1 | tail -30
  5. cd . && ls && node .claude/skills/colour-block-quotes/scripts/check.mjs index.html --out check 2>&1 | tail -30
  6. cp .claude/skills/colour-block-quotes/reference/script.js script.js && python3 - <<'EOF' css=open('.claude/skills/colour-block-quotes/reference/style.css').read() for a,b in [("--bg:#FFFDF6","--bg:#FFF4E0"),("--ink:#14110F","--ink:#16100C"),("--muted:#4C4640","--muted:#4A3B30"),("--line:#14110F","--line:#16100C"),("--accent:#14110F","--accent:#16100C"),("--em:#14110F","--em:#C73A00"),("--cobalt:#2244CC","--black:#16100C"),("--tomato:#EE5A44","--fire:#FF5A1F"),("--lime:#C6F04D","--cream:#FFE3B0"),("--plum:#5A1F5E","--ember:#A3200F")]: css=css.replace(a,b) i=css.index(".b0{"); j=css.index("@media (max-width:760px)") new=""".cb-b .face{display:grid;place-items:center;font-family:var(--font-display);font-size:1.05rem;line-height:1} .b0{background:var(--black);color:#FFF4E0}.b0 .role{color:#FFD9A8}.b0 .face{background:var(--fire);color:#16100C;border-color:#FFF4E0} .b1{background:var(--fire);color:#16100C}.b1 .role{color:#2A0E04}.b1 .face{background:#FFF4E0} .b2{background:var(--cream);color:#16100C}.b2 .role{color:#4A2A0A}.b2 .face{background:var(--fire)} .b3{background:var(--ember);color:#FFF4E0}.b3 .role{color:#FFE3C8}.b3 .face{background:#16100C} """ open('style.css','w').write(css[:i]+new+css[j:]) q=[("Put it on eggs. Then on everything.","Kofi","Chipotle Smoke"),("Hot but you can still taste the mango.","Lena","Mango Ghost"),("The only sauce my dad asks for by name.","Marisol","Habanero Garlic"),("Three drops in a Bloody Mary and you will never go back.","Owen","Smoked Scotch Bonnet")] li="".join(f'<li class="cb-b b{n} reveal"><figure><blockquote><p>{t}</p></blockquote><figcaption class="who"><span class="face" aria-hidden="true">{w[0]}</span><span><b>{w}</b><span class="role">Loves {s}</span></span></figcaption></figure></li>' for n,(t,w,s) in enumerate(q)) html=f'''<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Ember &amp; Ash hot sauce: what fans say</title> <meta name="description" content="Four Ember &amp; Ash fans on the sauces they love, from Chipotle Smoke to Smoked Scotch Bonnet."> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Dela+Gothic+One&family=DM+Sans:opsz,wght@9..40,400;9..40,600;9..40,700&display=swap"> <link rel="stylesheet" href="style.css"> </head> <body> <a class="skip" href="#main">Skip to content</a> <main id="main"> <section class="t-sec" id="fans" aria-labelledby="fans-h"><div class="sec-head"><h2 id="fans-h">Fans, <em>on fire</em></h2><p class="sub">Four Ember &amp; Ash fans, in their own words.</p></div><ul class="wrap cb">{li}</ul></section> </main> <script src="script.js" defer></script> </body> </html>''' open('index.html','w').write(html) EOF node .claude/skills/colour-block-quotes/scripts/check.mjs index.html --out check 2>&1 | tail -30
  7. ./.claude/skills/colour-block-quotes/reference/script.js
  8. ./script.js
  9. ./style.css
  10. ./index.html
  11. node .claude/skills/colour-block-quotes/scripts/check.mjs index.html --out check 2>&1 | tail -30
  12. ./check/1440.png
  13. ./check/390.png
  14. Done

12 Nov 2026 · Claude Code 2.1.322 with Claude Sonnet 5.5 · 1 min 4 s · $0.22 of API use

Questions

Is Colour Block Quotes free?

No. Colour Block Quotes costs $9.99 once and stays in your Recaply account, or it comes with the Recaply plan ($19.99 a month), which opens every premium skill and prompt.

Which agents can use Colour Block Quotes?

Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

What do I get when I buy Colour Block Quotes?

A ZIP of the whole skill folder (31 KB): the SKILL.md your agent follows and its 6 other files, the references, templates and scripts it uses. You download it from this page whenever you need it, and install it in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. The Recaply plan opens it too, with every other premium skill and prompt.

How do I install Colour Block Quotes?

Buy it, then download the ZIP from this page. For Claude Code, unzip it into .claude/skills/ in your project. For Codex, Cursor and Gemini CLI, unzip it and run npx skills add ./colour-block-quotes with your agent's flag.

What do I get from Colour Block Quotes?

One HTML file with its CSS inside: no build step, no framework. Testimonials on bold, flat colour blocks. Checked at phone and desktop widths.

What does Colour Block Quotes need?

Node 20+ and Chrome, and no API key. Each use costs nothing beyond your agent.

How big is Colour Block Quotes?

7 files, about 20,300 tokens in all. The SKILL.md is about 2,163 tokens, and your agent reads it only when the job fits.

What does a run cost?

Our 1 runs took 1 min 4 s to 1 min 4 s and $0.22 to $0.22 of API use each, in Claude Code with claude-sonnet-5-5. On a Claude plan, a run counts toward your usage instead.

Do I have to name Colour Block Quotes to use it?

Type /colour-block-quotes first to make sure it loads. Without it, Claude Code may judge a small job simple enough to do without the skill.