feat: crustacean character + repo readme
- Hero: minimal top-down crab silhouette in amber line-art, joins the staggered hero rise sequence; subtle hover scale on the group - Favicon: crab silhouette replaces letter mark - Footer: 'cleanup crab on the OpenClaw seafloor' replaces 'quiet member of the OpenClaw family' - Add README pointing to the openclaw/clawsweeper bot source
This commit is contained in:
parent
1b5de389de
commit
c614e56d2a
49
README.md
Normal file
49
README.md
Normal file
@ -0,0 +1,49 @@
|
||||
# clawsweeper.bot
|
||||
|
||||
The landing page for **[ClawSweeper](https://github.com/openclaw/clawsweeper)** —
|
||||
the cleanup crab of OpenClaw. ClawSweeper scans every open issue and pull
|
||||
request weekly, writes one durable review comment per item, and proposes a
|
||||
close only when the evidence is strong.
|
||||
|
||||
→ <https://clawsweeper.bot>
|
||||
|
||||
## What's here
|
||||
|
||||
A single-page editorial site. Static HTML and CSS — no build step, no
|
||||
JavaScript runtime, no analytics. Deploys directly to Vercel.
|
||||
|
||||
| File | Purpose |
|
||||
|----------------|----------------------------------------------------------|
|
||||
| `index.html` | Page markup |
|
||||
| `style.css` | Abyssal archival theme, hairline rules, hero motion |
|
||||
| `vercel.json` | Clean URLs, security headers, cache policy |
|
||||
| `package.json` | Tiny manifest with a `python3 -m http.server` dev script |
|
||||
|
||||
## Local preview
|
||||
|
||||
```bash
|
||||
pnpm dev
|
||||
# or
|
||||
python3 -m http.server 4321
|
||||
```
|
||||
|
||||
Then open <http://localhost:4321>.
|
||||
|
||||
## Deploy
|
||||
|
||||
This repo is wired to a Vercel project under the `amantus` team. Production
|
||||
deploys flow from `main`; nothing else is needed.
|
||||
|
||||
```bash
|
||||
vercel --prod --scope amantus
|
||||
```
|
||||
|
||||
## Sibling repos
|
||||
|
||||
- **ClawSweeper** (the bot itself) — <https://github.com/openclaw/clawsweeper>
|
||||
- **OpenClaw** — <https://github.com/openclaw/openclaw> · <https://openclaw.ai>
|
||||
- **ClawHub** — <https://github.com/openclaw/clawhub> · <https://clawhub.ai>
|
||||
|
||||
## License
|
||||
|
||||
MIT — see [`LICENSE`](./LICENSE).
|
||||
23
index.html
23
index.html
@ -13,7 +13,7 @@
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="ClawSweeper">
|
||||
<meta name="twitter:description" content="The conservative maintenance bot for OpenClaw repositories.">
|
||||
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' fill='%230a0e12'/%3E%3Ctext x='50%25' y='50%25' dy='.36em' text-anchor='middle' font-family='Georgia,serif' font-size='22' font-style='italic' fill='%23d4a574'%3EC%3C/text%3E%3C/svg%3E">
|
||||
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' fill='%230a0e12'/%3E%3Cg fill='none' stroke='%23d4a574' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='16' cy='17' rx='6' ry='3.4'/%3E%3Cline x1='14' y1='12.5' x2='14' y2='15'/%3E%3Cline x1='18' y1='12.5' x2='18' y2='15'/%3E%3Ccircle cx='14' cy='11.5' r='0.9' fill='%23d4a574'/%3E%3Ccircle cx='18' cy='11.5' r='0.9' fill='%23d4a574'/%3E%3Cpath d='M10 17 L5 14.5 L7 18.5 Z'/%3E%3Cpath d='M22 17 L27 14.5 L25 18.5 Z'/%3E%3Cline x1='13' y1='20' x2='11' y2='24'/%3E%3Cline x1='16' y1='20.5' x2='16' y2='25'/%3E%3Cline x1='19' y1='20' x2='21' y2='24'/%3E%3C/g%3E%3C/svg%3E">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght,SOFT@0,9..144,300..700,30..100;1,9..144,300..700,30..100&family=Newsreader:ital,opsz,wght@0,6..72,300..600;1,6..72,300..600&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
||||
@ -32,6 +32,25 @@
|
||||
<main>
|
||||
|
||||
<header class="hero">
|
||||
<svg class="crab-mark" viewBox="0 0 96 64" aria-hidden="true" focusable="false">
|
||||
<g fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<ellipse cx="48" cy="36" rx="14" ry="7.5"/>
|
||||
<line x1="44" y1="26" x2="44" y2="32"/>
|
||||
<line x1="52" y1="26" x2="52" y2="32"/>
|
||||
<circle cx="44" cy="24.5" r="1.4" fill="currentColor" stroke="none"/>
|
||||
<circle cx="52" cy="24.5" r="1.4" fill="currentColor" stroke="none"/>
|
||||
<line x1="34" y1="36" x2="22" y2="30"/>
|
||||
<path d="M22 30 L9 22 L13 33 Z"/>
|
||||
<line x1="62" y1="36" x2="74" y2="30"/>
|
||||
<path d="M74 30 L87 22 L83 33 Z"/>
|
||||
<line x1="40" y1="42" x2="35" y2="52"/>
|
||||
<line x1="44" y1="43" x2="42" y2="54"/>
|
||||
<line x1="48" y1="44" x2="48" y2="55"/>
|
||||
<line x1="52" y1="43" x2="54" y2="54"/>
|
||||
<line x1="56" y1="42" x2="61" y2="52"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
<div class="plate" aria-hidden="true">
|
||||
<span>Sweeper Log</span>
|
||||
<span class="plate-sep">·</span>
|
||||
@ -170,7 +189,7 @@
|
||||
<hr class="rule rule-major">
|
||||
<div class="foot-row">
|
||||
<p class="foot-mark">
|
||||
<em>ClawSweeper</em> — a quiet member of the OpenClaw family.
|
||||
<em>ClawSweeper</em> — the cleanup crab on the OpenClaw seafloor.
|
||||
</p>
|
||||
<nav class="foot-links" aria-label="External links">
|
||||
<a href="https://github.com/openclaw/clawsweeper">GitHub</a>
|
||||
|
||||
31
style.css
31
style.css
@ -114,6 +114,25 @@ main {
|
||||
padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2.5rem, 5vw, 4rem);
|
||||
}
|
||||
|
||||
.crab-mark {
|
||||
display: block;
|
||||
width: auto;
|
||||
height: clamp(34px, 4vw, 44px);
|
||||
color: var(--amber);
|
||||
margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
|
||||
opacity: 0.92;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.crab-mark > g {
|
||||
transform-origin: 48px 38px;
|
||||
transition: transform 700ms cubic-bezier(.2,.7,.2,1);
|
||||
}
|
||||
|
||||
.hero:hover .crab-mark > g {
|
||||
transform: scaleX(1.04) translateY(-1px);
|
||||
}
|
||||
|
||||
.plate {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
@ -533,6 +552,7 @@ main {
|
||||
/* ===== page-load motion ===================================== */
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
.crab-mark,
|
||||
.plate,
|
||||
.title,
|
||||
.lede,
|
||||
@ -543,11 +563,12 @@ main {
|
||||
animation: rise 1100ms cubic-bezier(.2,.7,.2,1) forwards;
|
||||
}
|
||||
|
||||
.plate { animation-delay: 0ms; }
|
||||
.title { animation-delay: 110ms; }
|
||||
.lede { animation-delay: 280ms; }
|
||||
.sub { animation-delay: 440ms; }
|
||||
.hero-meta { animation-delay: 600ms; }
|
||||
.crab-mark { animation-delay: 0ms; }
|
||||
.plate { animation-delay: 90ms; }
|
||||
.title { animation-delay: 220ms; }
|
||||
.lede { animation-delay: 380ms; }
|
||||
.sub { animation-delay: 540ms; }
|
||||
.hero-meta { animation-delay: 700ms; }
|
||||
|
||||
@keyframes rise {
|
||||
to {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user