Memos — a uduapp (upstream: usememos/memos)
Find a file
johnnyjoygh c031b77c83 chore: add a quiet button variant and one ring-free focus for kit
buttons

The calendar shipped its own "quiet control" grammar as a page-local set
of class strings: 28px tall, 13px text, muted ink that darkens under a
light hover wash, ring-free outline focus, and the accent fill reserved
for a pressed or current state. The same look was hand-rolled elsewhere
with drifting values (/65 ink, /50 washes, ring focus) as className
overrides on the kit's Button, against the kit policy.

The grammar now lives in the kit as `variant="quiet"`, with the accent
fill keyed off `aria-pressed`, `aria-current` and `data-popup-open`, so
a
control that is on, current, or holding a popup open fills itself. A
`size="icon-compact"` names the 28px square the sidebar already used for
its compose control; `sm` already had the height for labelled chips.

Kit buttons had no focus treatment of their own, so sites that needed
one
bolted `focus-visible:ring-*` overrides onto the Button. The base now
carries a 2px inset outline from a new `ui/focus.ts` constant that raw
controls (calendar grid cells, the reaction chip) import too, and the
calendar's controls.ts goes away.

With both in place the hand-rolled sites collapse onto the variant: the
calendar's header, month picker and day panel; the statistics month
navigator; the sidebar's section actions and compose and mobile menu
controls; the memo card's trailing actions and its action menu, which no
longer takes a className; the share-image dialog's footer; the memo
outline; and the inactive underline tab. The month title fills while its
picker is open and the outline's current heading fills like every other
current thing. Tests follow the classes they assert.
2026-09-06 22:43:21 +08:00
.github chore(ci): manage stale issues and pull requests 2026-08-28 22:02:13 +08:00
cmd/memos chore: remove promotional branding output 2026-08-31 21:33:29 +08:00
docs feat(filter): support space placement in saved views (#6267) 2026-09-04 09:29:09 +08:00
internal feat(filter): support space placement in saved views (#6267) 2026-09-04 09:29:09 +08:00
proto feat(filter): support space placement in saved views (#6267) 2026-09-04 09:29:09 +08:00
scripts chore(go): upgrade to Go 1.27 (#6217) 2026-08-20 23:37:02 +08:00
server feat(spaces): deliver invitations to the inbox (#6266) 2026-09-04 08:58:49 +08:00
store fix(store): harden 0.31 migration upgrades (#6247) 2026-08-30 09:24:56 +08:00
web chore: add a quiet button variant and one ring-free focus for kit 2026-09-06 22:43:21 +08:00
.dockerignore chore: streamline ignore rules 2026-08-22 10:34:28 +08:00
.gitignore chore: streamline ignore rules 2026-08-22 10:34:28 +08:00
.golangci.yaml fix(ci): remove invalid revive rule 'use-waitgroup-go' from golangci-lint config 2026-01-06 21:12:40 +08:00
.release-please-manifest.json chore(main): release 0.31.0-rc.1 (#6121) 2026-08-30 09:44:33 +08:00
AGENTS.md chore(go): upgrade to Go 1.27 (#6217) 2026-08-20 23:37:02 +08:00
CHANGELOG.md chore(main): release 0.31.0-rc.1 (#6121) 2026-08-30 09:44:33 +08:00
CODEOWNERS chore: tweak CODEOWNERS 2026-03-05 19:14:16 +08:00
CONTEXT.md feat(space): add client-defined UIDs and identity cues 2026-08-28 00:33:09 +08:00
go.mod refactor(server): remove RSS feed support (#6243) 2026-08-28 23:06:25 +08:00
go.sum refactor(server): remove RSS feed support (#6243) 2026-08-28 23:06:25 +08:00
LICENSE chore: update LICENSE (#4394) 2025-02-11 15:45:20 +08:00
README.md chore: fix sponsor logo links 2026-09-06 22:19:02 +08:00
release-please-config.json chore(release): enable rc.1 prereleases 2026-08-28 23:11:12 +08:00
SECURITY.md chore: update security.md 2026-04-01 08:39:49 +08:00

✨ Featured sponsor: CodeRabbit — Industry-leading AI code reviews.

Memos

Fast enough for every thought. Private enough for all of them.

Memos is an open-source, self-hosted home for short-form thinking. Daily notes, links, work logs, and snippets flow into a chronological Markdown timeline—on infrastructure you control, without the overhead of an all-in-one workspace.

Run with Docker · Try the live demo · Read the docs

GitHub stars Latest release Docker pulls MIT license

Memos Demo Screenshot

Why Memos?

  • Capture quickly — Write in Markdown, attach media, and save without choosing a title, folder, or template.
  • Organize lightly — Revisit notes through the timeline, search, tags, and pins.
  • Share selectively — Keep memos private or publish only what you choose.
  • Keep control — Self-host Memos with zero telemetry and MIT-licensed source.

Explore all features →

Quick Start

Run Memos with Docker:

docker run -d \
  --name memos \
  -p 5230:5230 \
  -v ~/.memos:/var/opt/memos \
  neosmemo/memos:stable

Other install options are in the deployment guide.

Web Clipper

Save pages, selections, and images from your browser straight into Memos as source-linked Markdown. Get the Memos Web Clipper for Chrome or Firefox.

Sponsors

CodeRabbit — Cut code review time and bugs in half        SSD Nodes — Affordable VPS hosting for self-hosters        TestMu AI — The world’s first full-stack Agentic AI Quality Engineering platform

Love Memos? Sponsor the project on GitHub.

Get Help

Read the docs, join Discord, or ask in GitHub Discussions. Found a bug or have an idea? Open an issue. To contribute, see the contributing guide.

Star History

Memos star history chart