Codync
무료 오픈소스 1:1 대안, Grok Bot과 Muse 대신
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Morphing status icon for Svelte 5 — idle, loading, success, error, warning with smooth spring morphs
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A status icon for Svelte 5. One stroke pours between idle, a spinner, a check, a cross, and a warning. The path is resampled so the spring can carry the same ink into the next shape, with a quiet color shift alongside.
Live demo: morph-status-svelte.vercel.app
npm install morph-status-svelte
Peer dependency: svelte ^5. The icon’s CSS ships inside the component. There are no other runtime dependencies.
<script lang="ts">
import { MorphStatus, type StatusName } from 'morph-status-svelte';
let phase = $state<StatusName>('idle');
</script>
<MorphStatus
state={phase}
size={32}
strokeWidth={10}
stiffness={0.2}
damping={0.72}
onchange={(next) => console.log('morph', next)}
oncomplete={(next) => console.log('settled', next)}
/>
Keep the variable you pass out of the name state — a local called state collides with the $state rune.
A save button is the usual place it shows up. announce={false} leaves the accessible name to the button.
<script lang="ts">
import { MorphStatus, type StatusName } from 'morph-status-svelte';
let phase = $state<StatusName>('idle');
async function save() {
phase = 'loading';
const ok = await persist();
phase = ok ? 'success' : 'error';
}
</script>
<button type="button" onclick={save} disabled={phase === 'loading'}>
<MorphStatus state={phase} size={22} announce={false} />
{phase === 'loading' ? 'Saving' : 'Save'}
</button>
| Prop | Default | |
|---|---|---|
state | 'idle' | 'idle' | 'loading' | 'success' | 'error' | 'warning' |
size | 32 | CSS pixels. The drawing is a 100×100 grid, so it stays sharp at any size. |
strokeWidth | 10 | Stroke width in that 100×100 grid. |
colors | system colors | Partial map of hex or rgb() colors per state. |
stiffness | 0.2 | Svelte spring stiffness, clamped to 0–1. Higher is faster. |
damping | 0.72 | Svelte spring damping, clamped to 0–1. Lower overshoots. |
label | — | One accessible name for every state. |
labels | Idle, Loading, Success, Error, Warning | Accessible name per state. |
announce | true | Polite live region. Set false inside a control that already has a name. |
onchange | — | Called when a morph starts, after the first render. |
oncomplete | — | Called when the springs settle on the new state. |
class | — | Class on the root element. |
Default colors are the Apple system set: gray, blue, green, red, yellow.
<MorphStatus
state={phase}
colors={{ success: '#63E6BE', error: '#FF375F' }}
/>
prefers-reduced-motion: reduce snaps the spring and holds the spinner still.role="status") whose label follows the state. Pass label for a single name, or labels to rename each one.Requires Node >=22.17.
npm install
npm run dev
The demo serves at http://127.0.0.1:4731. npm run build builds the demo site. npm run package writes the library to dist/ and runs publint. npm run check and npm run lint cover types and ESLint.
In this repo the demo imports the component through #lib. Published apps import morph-status-svelte.
MIT © Emil Majer