样式库 Style Library

Xiaojin Pixel Yard

小靳 像素小院
Weblight + darkproposalpixelplayfulcosywarm

16 位农场小镇的立体模型,粗描边像素 UI,白天暖、夜里静。

A cosy 16-bit farm-town diorama with chunky outlined UI, warm by day and calm by night.

Web sample · default
Night sky

Palette

Type

标题 Display 永正文 Body — 好的界面不抢内容 1234567890Previews use your installed fonts; webfonts are not bundled.
Display-apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", sans-serif
Body-apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", sans-serif
chat16px / 1.6
link14px
caption13px
stamp12px

The pixel feel comes from canvas art (image-rendering: pixelated), not a pixel font.

Shape & surface

radius · everything0px
shadow0 -2px 0 #2a2130, 0 2px 0 #2a2130, -2px 0 0 #2a2130, 2px 0 0 #2a2130, 0 6px 0 rgba(42,33,48,.22)
glassnone

Motion

  • Button press: translateY(2px), no easing.
  • Scene change: 4-step 2×2 dither wipe.
  • Characters are canvas-driven; data-still and reduced motion freeze them.

Do / Don't

Do

  • Keep every edge hard: 2px steps and zero radius.
  • Build frames with stacked box-shadows.
  • Touch targets at least 48px; recolour the frame for night (#11152a).

Don't

  • Don't use blur, soft shadows or gradients.
  • Don't use border-radius anywhere.
  • Don't use a pixel webfont for body text; keep CJK readable.

Used in

Sources

  • lingbrook-guild worktree lingbrook-xiaojin-move: src/yard/yard.css, src/yard/pixel/palette.ts

Updated 2026-10-13

Export

/* Xiaojin Pixel Yard / 小靳 像素小院 — A cosy 16-bit farm-town diorama with chunky outlined UI, warm by day and calm by night. */
:root {
  --xiaojin-pixel-yard-bg: #1d1822;
  --xiaojin-pixel-yard-surface: #f7eedb;
  --xiaojin-pixel-yard-ink: #2a2130;
  --xiaojin-pixel-yard-muted: #6f6470;
  --xiaojin-pixel-yard-accent: #d3a46a;
  --xiaojin-pixel-yard-accent-ink: #2a2130;
  --xiaojin-pixel-yard-line: #2a2130;
  --xiaojin-pixel-yard-highlight: #c2563f;
  --xiaojin-pixel-yard-highlight-wash: #dfeab8;

  --xiaojin-pixel-yard-pal-ink: #2a2130;
  --xiaojin-pixel-yard-pal-plum: #4b3b55;
  --xiaojin-pixel-yard-pal-bark: #6e4a36;
  --xiaojin-pixel-yard-pal-wood: #a06b45;
  --xiaojin-pixel-yard-pal-wheat: #d3a46a;
  --xiaojin-pixel-yard-pal-sand: #ead2a0;
  --xiaojin-pixel-yard-pal-paper: #f7eedb;
  --xiaojin-pixel-yard-pal-stone: #b9b2a6;
  --xiaojin-pixel-yard-pal-grass: #8fbf5c;
  --xiaojin-pixel-yard-pal-leaf: #5d9150;
  --xiaojin-pixel-yard-pal-indigo: #55679e;
  --xiaojin-pixel-yard-pal-roof: #c2563f;
  --xiaojin-pixel-yard-pal-sky: #a9dbeb;
  --xiaojin-pixel-yard-pal-frame: #1d1822;
  --xiaojin-pixel-yard-pal-night-panel: #262b45;

  --xiaojin-pixel-yard-font-display: -apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", sans-serif;
  --xiaojin-pixel-yard-font-body: -apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", sans-serif;
  --xiaojin-pixel-yard-text-chat: 16px / 1.6;
  --xiaojin-pixel-yard-text-link: 14px;
  --xiaojin-pixel-yard-text-caption: 13px;
  --xiaojin-pixel-yard-text-stamp: 12px;

  --xiaojin-pixel-yard-radius-everything: 0px;
  --xiaojin-pixel-yard-shadow: 0 -2px 0 #2a2130, 0 2px 0 #2a2130, -2px 0 0 #2a2130, 2px 0 0 #2a2130, 0 6px 0 rgba(42,33,48,.22);
}

/* Night sky */
@media (prefers-color-scheme: light) {
  :root {
    --xiaojin-pixel-yard-bg: #1d1822;
    --xiaojin-pixel-yard-surface: #262b45;
    --xiaojin-pixel-yard-ink: #efe6c8;
    --xiaojin-pixel-yard-muted: #a9a8c0;
    --xiaojin-pixel-yard-accent: #d3a46a;
    --xiaojin-pixel-yard-accent-ink: #2a2130;
    --xiaojin-pixel-yard-line: #11152a;
  }
}

Compare