framed-grid-layout — Claude Code skill: framed grid layouts
A skill that spells out how to build pages with thin visible section borders, L-shaped corner brackets and strict grid alignment.
npx skills add MengTo/Skills --skill framed-grid-layout -a claude-codeWhat framed-grid-layout does
The skill walks through a CSS Grid setup: a parent grid of 12 columns first, then every section snapping to the same columns and rows. It ships layout rules, base tokens and snippets for frames, corner brackets and diagonal texture. A taste section follows: don't mix border weights in adjacent frames, skip heavy shadows, keep the texture under 0.05 opacity.
Each section gets the same 1px border, one line color and one spacing scale. The L-shaped brackets are drawn with linear-gradient layers in background, so no extra markup is needed. Diagonal texture comes from a repeating-linear-gradient at 135 degrees and barely reads on screen.
Reach for it when a page should look technical or editorial: visible section boundaries, even margins, nothing floating. Below 760px the grid collapses to a single column through a media query, so mobile still needs a look. Remove the texture layer and the layout should read just as well — that's a built-in check, not a suggestion.
What it helps with
- build a page with visible section boundaries
- align blocks to one grid instead of ad hoc widths
- add L-shaped corner brackets without extra markup
- set one spacing scale and border weight across sections
- keep the diagonal background texture nearly invisible
Example prompts for the agent
- build this landing page with the framed-grid-layout skill
- give the sections frames and corner brackets like framed-grid-layout
- move this layout onto the framed-grid-layout grid
How to install framed-grid-layout
1Skills CLI (Vercel)
npx skills add MengTo/Skills --skill framed-grid-layout -a claude-code2Manually: put the files in place
~/.claude/skills/framed-grid-layout/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/framed-grid-layout/
1Skills CLI (Vercel)
npx skills add MengTo/Skills --skill framed-grid-layout -a codex2Manually: put the files in place
.agents/skills/framed-grid-layout/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add MengTo/Skills --skill framed-grid-layout -a cursor2Manually: put the files in place
.cursor/skills/framed-grid-layout/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install MengTo/Skills framed-grid-layout2Manually: put the files in place
.github/skills/framed-grid-layout/SKILL.md1Skills CLI (Vercel)
npx skills add MengTo/Skills --skill framed-grid-layout -a gemini-cli2Platform CLI
gemini skills install https://github.com/MengTo/Skills --path agent-skills/web-design/framed-grid-layoutManually: put the files in place
.devin/skills/framed-grid-layout/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add MengTo/Skills --skill framed-grid-layout -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about framed-grid-layout
How do I install framed-grid-layout in Claude?
Run npx skills add MengTo/Skills --skill framed-grid-layout -a claude-code. The skill file then lives at ~/.claude/skills/framed-grid-layout/SKILL.md.
What does framed-grid-layout do?
It sets layout rules: a 12-column parent grid, matching frames on every section, CSS-only L-shaped brackets and a faint diagonal background texture.
Which tokens does the skill use?
Neutral ones: background #f7f7f4, lines rgba(24, 24, 27, 0.14) and rgba(24, 24, 27, 0.34), texture rgba(24, 24, 27, 0.035), gap 16px. Contrast is meant to be tuned per theme.
Source text
SKILL.md · MIT
---
name: framed-grid-layout
description: Create minimal framed grid layouts with thin visible boundary lines, L-shaped corner brackets, subtle diagonal line texture, and strict section alignment. Use when asked for clean, neutral, precise, structured, editorial, technical, or guide-border web layouts.
---
# Framed Grid Layout
## Use When
- A page needs a clean technical structure with visible section boundaries.
- Content should feel precise, organized, editorial, or system-like.
- The design calls for thin guide borders, L-shaped corner brackets, and consistent framed boxes.
## Layout Rules
1. Define the parent grid first; make every section snap to the same columns and rows.
2. Use one border color, one corner bracket color, and one spacing scale across the page.
3. Keep frames rectangular and precise. Avoid floating cards, soft blobs, and uneven margins.
4. Use thin lines: `1px` borders, low-contrast dividers, and subtle bracket marks.
5. Add diagonal background texture at very low opacity; it should read only as surface tension.
6. Align section padding, headings, controls, and media edges to the same grid rhythm.
7. Separate sections with consistent gaps, not random whitespace.
## Base Tokens
Use neutral colors and tune contrast per theme.
```css
:root {
--fg-bg: #f7f7f4;
--fg-surface: rgba(255, 255, 255, 0.62);
--fg-line: rgba(24, 24, 27, 0.14);
--fg-line-strong: rgba(24, 24, 27, 0.34);
--fg-texture: rgba(24, 24, 27, 0.035);
--fg-gap: 16px;
--fg-pad: clamp(16px, 2vw, 28px);
--fg-corner: 18px;
}
```
## Parent Grid
Use the parent grid to enforce vertical and horizontal alignment.
```css
.framed-grid {
min-height: 100vh;
padding: var(--fg-gap);
background:
repeating-linear-gradient(
135deg,
transparent 0 11px,
var(--fg-texture) 11px 12px
),
var(--fg-bg);
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
gap: var(--fg-gap);
}
.framed-grid > * {
min-width: 0;
}
```
## Framed Section
Each section gets the same box model, line weight, and padding.
```css
.frame {
position: relative;
border: 1px solid var(--fg-line);
background: var(--fg-surface);
padding: var(--fg-pad);
overflow: hidden;
}
.frame + .frame {
margin-top: 0;
}
```
## L-Shaped Corner Brackets
Use background layers so brackets stay crisp without extra markup.
```css
.frame-brackets {
background:
linear-gradient(var(--fg-line-strong), var(--fg-line-strong)) left top / var(--fg-corner) 1px no-repeat,
linear-gradient(var(--fg-line-strong), var(--fg-line-strong)) left top / 1px var(--fg-corner) no-repeat,
linear-gradient(var(--fg-line-strong), var(--fg-line-strong)) right top / var(--fg-corner) 1px no-repeat,
linear-gradient(var(--fg-line-strong), var(--fg-line-strong)) right top / 1px var(--fg-corner) no-repeat,
linear-gradient(var(--fg-line-strong), var(--fg-line-strong)) left bottom / var(--fg-corner) 1px no-repeat,
linear-gradient(var(--fg-line-strong), var(--fg-line-strong)) left bottom / 1px var(--fg-corner) no-repeat,
linear-gradient(var(--fg-line-strong), var(--fg-line-strong)) right bottom / var(--fg-corner) 1px no-repeat,
linear-gradient(var(--fg-line-strong), var(--fg-line-strong)) right bottom / 1px var(--fg-corner) no-repeat,
var(--fg-surface);
}
```
## Section Spans
Prefer explicit grid spans over ad hoc widths.
```css
.span-12 { grid-column: span 12; }
.span-8 { grid-column: span 8; }
.span-6 { grid-column: span 6; }
.span-4 { grid-column: span 4; }
@media (max-width: 760px) {
.framed-grid {
grid-template-columns: 1fr;
}
.span-12,
.span-8,
.span-6,
.span-4 {
grid-column: 1 / -1;
}
}
```
## Example
```html
<main class="framed-grid">
<section class="frame frame-brackets span-12">...</section>
<section class="frame frame-brackets span-8">...</section>
<aside class="frame frame-brackets span-4">...</aside>
<section class="frame frame-brackets span-6">...</section>
<section class="frame frame-brackets span-6">...</section>
</main>
```
## Taste Rules
- Keep frames aligned to the parent grid even when content inside varies.
- Use square or lightly rounded corners only if the product style requires it.
- Do not mix different border weights in adjacent frames.
- Do not add heavy shadows; the visible frame is the structure.
- Keep diagonal texture below `0.05` opacity.
- Repeat corner bracket size consistently across all major sections.
## Quick Checks
- Section edges line up vertically and horizontally.
- Every frame uses the same border, padding, and corner bracket scale.
- Gaps between frames are consistent on desktop and mobile.
- The diagonal texture is visible only on close inspection.
- The layout still reads clearly if the texture layer is removed.
© MengTo · MIT · MengTo/Skills