MCPInstall

obsidian-layout-adjustment

Adjust the user's Obsidian visual layout with CSS snippets. Use for restyling tabs, sidebars, note surfaces, properties, backlinks, graph or file-explorer UI, or diagnosing CSS changes that did not take effect.

Installs
439
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/ar9av/obsidian-wiki --skill obsidian-layout-adjustment
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads obsidian-layout-adjustment automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Obsidian Layout Adjustment

This skill is for changing how Obsidian looks with CSS files while working with the user's visual language.

Obsidian is always the same kind of environment: app frame, tab headers, side docks, view headers, pane shells, note surface, properties, file explorer, backlinks, graph, rendered markdown, and status bar. The vault, theme, snippets, plugins, and desired taste direction change, but the canvas stays Obsidian.

The core behavior is translation:

the user names a visible Obsidian object. Translate that phrase into the stable Obsidian layer/backend object, edit the active snippets safely, screenshot the result, and keep iterating without losing good states.

This is not a general CSS workflow and not a fixed-theme generator.

Normal Output Mode

This skill should make live styling work faster, not turn every small request into a report.

In normal use:

  1. Say the mapping only when it prevents ambiguity.
  2. Keep the mapping short: one sentence is usually enough.
  3. Then act: inspect active snippets, checkpoint, patch, format, reload, screenshot.
  4. Report the result concisely with changed files, checkpoint, and screenshot status.

Good normal update:

"I’m treating 'tabs above the note' as workspace tab headers, not the arrows/book/dots view header. I’ll checkpoint active snippets, patch that selector family only, and screenshot the tab strip."

Do not write a long workflow report unless:

  • the user asks for a plan, audit, review, or explanation.
  • You are running evals or building this skill.
  • You are refactoring without visual changes.
  • The request is ambiguous enough that acting first would be risky.

The value is in preventing bad CSS loops while still moving quickly.

Use The Reference

Read references/workflow-reference.md when:

  • the user names a visible Obsidian object in natural language.
  • The requested target could be more than one Obsidian layer.
  • A screenshot shows "nothing changed," "still wrapped," "not lifted," uneven edges, washed-out surfaces, or unreadable icons.
  • You are refactoring active snippets without changing the accepted look.
  • You need the Obsidian surface map, change-type map, or failure-pattern list.

The reference is Obsidian-specific. Use it before treating the UI as an unknown web page.

Operating Loop

  1. Start from the live vault.
  2. Read <vault>/.obsidian/appearance.json.
  3. Treat enabledCssSnippets as the active styling source of truth.
  4. Read active snippets before archives, backups, or old experiments.
  5. Translate the user's phrase into an Obsidian object and owning layer.
  6. Classify the change type: color, readability, lift, shape, structure, density, simplification, workflow, or refactor.
  7. Save a named checkpoint before subjective edits: copy the active snippets to .obsidian/snippet-archive/, never into .obsidian/snippets, so the snippet picker stays clean.
  8. Re-read the exact current block, then edit one owning layer: stage, shell, header, wrapper, or child. Formatting reshapes the file; a patch written from a remembered shape misses mechanically.
  9. Format CSS.
  10. Reload/focus Obsidian and screenshot the exact affected area.
  11. Use the screenshot and the user's correction as evidence.
  12. If it fails, inspect ownership or restore; do not keep piling CSS onto the same wrong target.
  13. Refactor only after the user accepts the visual state.

Translate Before Editing

The user will usually name what they see, not the selector:

  • "tabs above the note"
  • "arrows/book/dots above the note"
  • "left side note buttons"
  • "right sidebar"
  • "links in those little areas"
  • "the thing around the note"
  • "selected icon"
  • "top-left white corner"

Before editing, map the phrase:

user phrase -> visible object -> Obsidian layer -> likely selector/settings surface -> change type -> owning layer

Say the mapping back when it could be ambiguous:

"When you say the tabs above the note, I am treating that as the workspace tab headers, not the arrows/book/dots row inside the note pane."

This is the main mistake-prevention step. Most frustrating failures came from changing a plausible element that was not the object the user meant, or changing a child when the wrapper/header/stage owned the visible shape.

Stable Layer Stack

Use this compact map first, then verify exact selectors in the live vault:

the user points atUsually means
top-left white/native areatitlebar/native chrome or adjacent app header
tabs above noteworkspace tab headers
plus next to tabnew tab control
green/top barapp frame or tab header container
far-left iconsribbon / side dock
selected side iconactive side-dock tab header plus icon state
buttons above file listfile explorer nav controls
left note/folder buttonsfile explorer tree rows
vault name/footerside dock profile/footer
arrows/book/dots above notemarkdown view header
note/page/papermarkdown leaf, editor, or readable surface
note shadow/lift/edgestage, shell, gutter, overflow, or pseudo-element relationship
propertiesmetadata container or Properties View workflow
linksinternal link spans in reading/editing modes
right sidebarright workspace split and utility leaves
linked mentions/backlinksbacklinks plugin result groups
graphgraph plugin leaf/canvas
bottom statsstatus bar

The visible object and backend layer should be treated as stable across Obsidian work. Exact class names can vary by theme/plugin/app version, so verify in the live vault before patching.

Change-Type Split

The same object needs different work depending on the request:

  • Color/accent: update background, text, border, icon stroke/fill, and active/hover/focus states together.
  • Readability: check rendered contrast, especially for icons on colored toolbars.
  • Lift/depth: decide foreground, stage, shell, gutter, overflow, and exterior shadow. Lift is a relationship, not just box-shadow.
  • Rounded corners: check parent shell, child radius, overflow, and adjacent background.
  • Structure: style the wrapper/header/shell that owns the visible shape.
  • Simplification: remove wrappers, borders, gradients, shadows, or pseudo-elements before adding more treatment.
  • Properties/workflow: consider Obsidian's Properties View or display settings before CSS-compressing metadata.
  • Refactor: preserve cascade order and verify the screenshot does not change.

If a target needs two change types, do two passes. For example, make side-dock icons readable first, then tune the selected-state color.

What To Change First

Start with:

  • active CSS snippets from appearance.json
  • Obsidian settings when the issue is a workspace behavior
  • Style Settings or theme variables when the change should remain tunable
  • stable Obsidian wrappers: tab headers, view headers, pane shells, side docks, file rows, note surface, backlinks groups

Avoid changing first:

  • Obsidian app bundle files
  • community plugin source files
  • installed theme source files
  • vault content just to force visual styling
  • app internals/minified code before active snippets and theme CSS are ruled out

Ask for explicit confirmation before:

  • switching themes
  • disabling snippets or plugins
  • hiding/moving properties as a workflow change
  • changing global typography or editor density substantially
  • deleting archived experiments
  • changing files outside .obsidian/snippets or Obsidian settings

Screenshot Gate

CSS validity is not visual success. The screenshot is product truth.

For every meaningful visual pass:

  1. Save checkpoint.
  2. Patch.
  3. Format CSS.
  4. Reload or focus Obsidian.
  5. Screenshot the affected area.
  6. Compare the screenshot to the complaint.

If another window covers Obsidian, retake the screenshot. Verify the verifier: confirm Obsidian is actually frontmost before trusting a capture (AppleScript can check the frontmost process). If the issue is tiny, capture just that region — screencapture -R<x,y,w,h> out.png — around the edge, icon, tab, row, or pane.

If the screenshot disproves the fix, keep working, restore, or say it failed. Do not close as if formatting proved success.

Failure Signals

the user's corrections are selector evidence:

  • "nothing changed" means wrong selector, wrong layer, clipping, coverage, or override.
  • "still wrapped" usually means both wrapper and child are styled.
  • "not lifted" means the stage/shell/gutter relationship is wrong or too subtle.
  • "right side got lighter" points to an overlay or pseudo-element on top of the note.
  • "icon is impossible to see" means active/inactive button fill and icon color must be handled together.
  • "overdone" often means remove treatment before adding another one.

If a direction fails twice, restore the last good checkpoint and change the ownership model.

Refactor Rule

Do not refactor during taste exploration.

When the user likes the look:

  1. Save a baseline checkpoint.
  2. Add or update a file map and section headers.
  3. Preserve selector order unless changing it intentionally.
  4. Format CSS.
  5. Check the diff for accidental visual changes.
  6. Screenshot Obsidian.
  7. Archive inactive iterations outside .obsidian/snippets.

CSS size is usually less dangerous than cascade confusion and a messy active snippet picker.

Closing Report

When done, keep the closeout short. Report:

  • active snippet files changed
  • checkpoint paths saved
  • what user phrase mapped to which Obsidian layer
  • what was screenshot-verified
  • anything not verified or intentionally deferred

Avoid explaining the whole workflow after every small pass. The workflow should be visible in the actions: checkpoint, scoped edit, screenshot, and evidence-based next step.

FAQ

What does the obsidian-layout-adjustment skill do?

Adjust the user's Obsidian visual layout with CSS snippets. Use for restyling tabs, sidebars, note surfaces, properties, backlinks, graph or file-explorer UI, or diagnosing CSS changes that did not take effect.

How do I install obsidian-layout-adjustment?

Run npx skills add https://github.com/ar9av/obsidian-wiki --skill obsidian-layout-adjustment in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/obsidian-layout-adjustment/ (personal) or .claude/skills/obsidian-layout-adjustment/ (project).

Which AI agents can use obsidian-layout-adjustment?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is obsidian-layout-adjustment safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains obsidian-layout-adjustment?

It is published by ar9av in ar9av/obsidian-wiki. It has 439 recorded installs.

More from ar9av/obsidian-wiki

View all →

llm-wiki

ar9av/obsidian-wiki

Explain and apply the foundational LLM Wiki architecture and knowledge-management strategy. Use for setup, architecture, schema, or organization decisions; operational ingest/query/lint work uses dedicated skills.

AI & Agents4.1K installs

wiki-ingest

ar9av/obsidian-wiki

Ingest new documents, raw text, folders, or URLs into the Obsidian wiki as distilled, linked knowledge. Use for general wiki ingestion when no more specific ingest skill applies, including processing raw/ staged content.

wiki-setup

ar9av/obsidian-wiki

Initialize or repair an Obsidian wiki vault's required structure and configuration. Use for new-vault setup, .env/config creation, reconfiguration, or broken setup recovery.

wiki-query

ar9av/obsidian-wiki

Search and synthesize answers from the compiled Obsidian wiki, including cited and multi-hop answers. Use for questions about existing wiki knowledge or fast index-only lookups, and for challenge requests ("challenge this", "argue against X", "poke holes in my plan") that look for the vault's own evidence against a plan. Supports named-vault routing such as wiki-query @work; not for ingesting new sources.

wiki-lint

ar9av/obsidian-wiki

Audit wiki health: broken links, orphans, contradictions, stale content, lifecycle and tag issues. Use for maintenance or health checks. Default is report-only; use wiki-dedup for page-identity merges.

wiki-status

ar9av/obsidian-wiki

Report wiki ingestion/completeness state, pending source delta, structural insights, or maintenance equilibrium. Use for remaining-work/status questions, hubs and bridges, or whether maintenance skills still have pending changes. wiki-digest summarizes learned knowledge instead.

Docs & Writing3.4K installs

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs