sky-canvas
Skill8 starsChanged 6 days agoMITView on GitHub
Canvas ve SVG ile çizim etkileşimleri: imza alanı, serbest çizim/beyaz tahta, görsel düzenleme (metin, sticker, filtre), Konva/Fabric/tldraw/Excalidraw seçimi, Retina ölçekleme, pointer events ve kalem basıncı (perfect-freehand), geri al/yinele, hizalama kılavuzları, PNG/SVG/PDF dışa aktarım, konfeti kutlama anları ve OffscreenCanvas. "İmza alanı", "çizim tahtası", "görsel üzerine yazı", "konfeti", "whiteboard" dendiğinde kullan.
In this repository213 other files it gives its agents.
- sky-3dSkill
- sky-a11y-auditorSkill
- sky-a11ySkill
- sky-ai-agentsSkill
- sky-ai-evalSkill
- sky-aiSkill
- sky-ai-uxSkill
- sky-algorithmsSkill
- sky-androidSkill
- sky-angularSkill
- sky-ansibleSkill
- sky-api-reviewerSkill
- sky-architectSkill
- sky-architecture-docsSkill
- sky-architecture-patternsSkill
- sky-astroSkill
- sky-audit-historySkill
- sky-authSkill
- sky-auth-uxSkill
- sky-awsSkill
- sky-azureSkill
- sky-baasSkill
- sky-backend-apiSkill
- sky-botsSkill
- sky-brandSkill
- sky-browser-apisSkill
- sky-browser-extensionSkill
- sky-browser-qaSkill
- sky-builderSkill
- sky-build-fixerSkill
- sky-cachingSkill
- sky-changelogSkill
- sky-chat-productSkill
- sky-checkout-uxSkill
- sky-claude-codeSkill
- sky-claude-mdSkill
- sky-cli-toolsSkill
- sky-cloudflareSkill
- sky-cmsSkill
- sky-codebase-mapperSkill
- sky-code-reviewerSkill
- sky-code-reviewSkill
- sky-code-styleSkill
- sky-colorSkill
- sky-cppSkill
- sky-criticSkill
- sky-cryptoSkill
- sky-css-modernSkill
- sky-dashboardSkill
- sky-data-analysisSkill
- sky-data-pipelinesSkill
- sky-dataSkill
- sky-datavizSkill
- sky-date-timeSkill
- sky-db-reviewerSkill
- sky-debuggerSkill
- sky-debugSkill
- sky-deploySkill
- sky-designerSkill
- sky-design-systemSkill
- The first 60 shown.
The file
Files
Sky · Canvas & Çizim
Hazır mı, kendin mi?
| İhtiyaç | Seçim |
| Sonsuz beyaz tahta, şekiller, çok kullanıcı | tldraw veya Excalidraw |
| Sürüklenebilir nesneler, görsel editör | Konva (react-konva) |
| Klasik nesne düzenleyici | Fabric.js |
| İmza alanı | signature_pad veya perfect-freehand |
| Efekt | canvas-confetti |
Retina ölçekleme (bulanıklığın 1 numaralı sebebi)
function setupCanvas(canvas: HTMLCanvasElement) {
const dpr = Math.min(window.devicePixelRatio || 1, 2);
const { width, height } = canvas.getBoundingClientRect();
canvas.width = Math.round(width * dpr); canvas.height = Math.round(height * dpr);
const ctx = canvas.getContext("2d")!; ctx.scale(dpr, dpr);
return ctx;
}ResizeObserver ile boyut değişince yeniden kur ve çiz.
Pointer events ile çizim
canvas.addEventListener("pointerdown", (e) => { canvas.setPointerCapture(e.pointerId); start(e); });
canvas.addEventListener("pointermove", (e) => {
for (const ev of e.getCoalescedEvents?.() ?? [e]) addPoint(ev.offsetX, ev.offsetY, ev.pressure || 0.5);
});- Canvas'ta
touch-action: none(yoksa sayfa kayar). getCoalescedEventsile hızlı çizimde kayıp nokta yok → pürüzsüz çizgi.- perfect-freehand basınç duyarlı, kalem gibi doğal çizgi — insanlar farkı hemen görür.
İmza alanı
- Min 320×140, taban çizgisi + "Buraya imzalayın" soluk metni, "Temizle" butonu.
- Boşsa gönderim engelli; tek nokta geçersiz.
- Dışa aktar: SVG + PNG yedeği; zaman damgası ve IP ile kaydet (hukuki iz).
- Erişilebilir alternatif: "Adımı yazarak imzala" (el yazısı fontuyla render).
Geri al / yinele
Komut deseni ({ do, undo }) veya küçük sahnelerde durum anlık görüntüleri. ⌘Z / ⌘⇧Z.
Görsel editör kalıpları
- Metin ekle (sürükle, döndür, font/renk), sticker/emoji, kırp, filtre (
ctx.filter), çerçeve. - Katmanlar paneli: sırala, gizle, kilitle.
- Seçim tutamakları (Konva
Transformer): Shift ile oran koru. - Hizalama kılavuzları: nesne merkeze/kenara yaklaşınca pembe çizgi — profesyonel his.
Dışa aktarım
- PNG:
canvas.toBlob(cb, "image/png"); 2× çözünürlük seçeneği. - SVG: Konva/Fabric export, tldraw
exportToSvg. PDF: bkz.sky-print-pdf. - Panoya kopyala ve paylaş (bkz.
sky-browser-apis). - Dış görseller canvas'ı kirletir (CORS) →
img.crossOrigin = "anonymous"+ sunucu CORS başlığı.
Konfeti ve kutlama anları
import confetti from "canvas-confetti";
confetti({ particleCount: 120, spread: 70, origin: { y: 0.7 }, disableForReducedMotion: true });Ne zaman: ilk başarılı işlem (ilk randevu, ödeme tamam, hedefe ulaşma). Her tıklamada değil.
Performans
requestAnimationFrame; sekme gizliyken dur.- Statik arka planı ayrı katmanda çiz, yalnızca değişen katmanı yeniden çiz.
- Ağır iş → OffscreenCanvas + Worker. 10k+ nesne → PixiJS (WebGL).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

