sky-browser-apis
Skill8 starsChanged 6 days agoMITView on GitHub
Modern tarayıcı API'leri ile "native uygulama" hissi: Web Share (paylaş menüsü), Clipboard, Popover API ve <dialog>, View Transitions, Broadcast Channel (sekmeler arası), Page Visibility, Badging, Wake Lock, Vibration, File System Access, Web Workers, passkey (WebAuthn), Web Speech (sesle yazma) ve EyeDropper; özellik algılama ve fallback'ler. "Paylaş butonu", "kopyala", "sekmeler arası senkron", "passkey", "sesle yazma" 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-extensionSkill
- sky-browser-qaSkill
- sky-builderSkill
- sky-build-fixerSkill
- sky-cachingSkill
- sky-canvasSkill
- 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 · Tarayıcı API'leri
Kural: özellik algıla, fallback ver. Desteklemeyen tarayıcıda deneyim bozulmasın, sadeleşsin.
Paylaş (Web Share)
async function share(data: { title: string; text?: string; url: string }) {
if (navigator.share && navigator.canShare?.(data)) {
try { await navigator.share(data); } catch { /* kullanıcı iptal etti */ }
} else {
await navigator.clipboard.writeText(data.url);
toast("Bağlantı kopyalandı");
}
}Mobilde native paylaş sayfası (WhatsApp, Instagram…). Dosya paylaşımı: files: [new File(...)].
Masaüstü fallback menüsü: WhatsApp (https://wa.me/?text=), X, LinkedIn, kopyala.
Pano
- Metin:
navigator.clipboard.writeText→ butonda ✓ ikonu 1.5 sn ("Kopyalandı"). - Görsel:
navigator.clipboard.write([new ClipboardItem({ "image/png": blob })]). - Yapıştırmadan görsel al:
pasteolayındae.clipboardData.files. - Kod blokları, davet bağlantıları, IBAN, kupon kodu → kopyala butonu her zaman.
Popover ve dialog
<button popovertarget="menu">Menü</button>
<div id="menu" popover>…</div> <!-- Esc ve dışarı tıklama ile kapanır -->
<dialog id="confirm"><form method="dialog">…<button value="ok">Sil</button></form></dialog>dialog.showModal() odak tuzağı, ::backdrop, Esc'i yerleşik verir. Anchor positioning ile popover'ı
tetikleyiciye bağla (bkz. sky-css-modern).
View Transitions
document.startViewTransition(() => updateDOM()); // aynı sayfa
// çok sayfalı: @view-transition { navigation: auto; }Paylaşılan öğe: iki sayfada aynı view-transition-name → küçük resim büyüyerek detaya dönüşür.
Reduced-motion'da kapat.
Sekmeler arası: Broadcast Channel
const ch = new BroadcastChannel("auth");
ch.postMessage({ type: "logout" }); // bir sekmede çıkış → hepsinde çıkış
ch.onmessage = (e) => e.data.type === "logout" && location.assign("/login");Sepet sayısı, tema değişimi, "başka sekmede açık" uyarısı için de.
Görünürlük, rozet, başlık
document.visibilityState→ arka planda polling/animasyon/video durdur.- Sekme başlığında sayı:
document.title = "(3) Mesajlar"; favicon rozeti (canvas). - Kurulu PWA'da
navigator.setAppBadge(3)— ana ekran ikonunda sayı.
Wake Lock ve titreşim
- Tarif, egzersiz, bilet QR ekranı →
navigator.wakeLock.request("screen"); sekme dönüşünde yeniden iste. navigator.vibrate(10)başarıda mikro geri bildirim (Android); kapatılabilir olsun.
Dosya sistemi
showSaveFilePicker(Chromium): aynı dosyaya tekrar kaydet — editör uygulamalarında harika. Fallback:<a download>ve<input type=file>.- Büyük dosyayı stream ile oku (
file.stream()).
Web Workers
Ağır iş (CSV parse, görsel işleme, arama indeksi) → Worker. comlink ile fonksiyon çağırır gibi:
const api = wrap<typeof import("./parse.worker")>(new Worker(new URL("./parse.worker.ts", import.meta.url), { type: "module" }));
const rows = await api.parseCsv(file);Passkey (WebAuthn)
Parolasız giriş — kullanıcılar Face ID/parmak iziyle girmeyi sever. SimpleWebAuthn veya auth çözümünün
eklentisi. autocomplete="username webauthn" ile e-posta alanında otomatik passkey önerisi.
Kurtarma yolu (e-posta) her zaman olsun (bkz. sky-auth).
Ses ve diğerleri
- Web Speech (
SpeechRecognition,lang = "tr-TR"): arama/not alanında 🎤 ile sesle yazma; desteklenmiyorsa gizle. speechSynthesisile sesli okuma.- EyeDropper (Chromium): ekrandan renk seçme.
- Contact Picker (Android Chrome): davet ederken rehberden seç.
navigator.connection.saveData→ veri tasarrufu modunda ağır medyayı yükleme.
Kontrol listesi
- Her API için özellik algılama + fallback
- İzin isteyen API'ler kullanıcı eylemiyle tetikleniyor
- HTTPS (güvenli bağlam)
- İptal/hata durumları akışı bozmuyor
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.

