agentsclimarketplace

Svelte api reference

Skill morning-start/agent-skills/lang/svelte/svelte-api-reference

AI 编程助手的专业技能库,涵盖 30+ 技能,按 6 类组织

Install
npx -y skills add morning-start/agent-skills --skill svelte-api-reference

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Svelte API 参考技能,掌握 svelte/* 模块的完整 API,包括 store、transition、animate、easing 等

SKILL.md

5.5 KB, as published. Nobody here has run it

Svelte API Reference

任务目标

  • 本 Skill 用于:查阅 Svelte API 文档和使用内置模块
  • 能力包含:svelte/store、svelte/transition、svelte/animate 等模块
  • 触发条件:需要使用特定 API 功能时

svelte/store 模块

writable

import { writable } from 'svelte/store';

const count = writable(0);

count.subscribe(value => console.log(value));
count.set(1);
count.update(n => n + 1);

readable

import { readable } from 'svelte/store';

const time = readable(new Date(), (set) => {
  const interval = setInterval(() => set(new Date()), 1000);
  return () => clearInterval(interval);
});

derived

import { derived } from 'svelte/store';

const doubled = derived(count, $count => $count * 2);

const summed = derived([a, b], ([$a, $b]) => $a + $b);

readonly

import { readonly, writable } from 'svelte/store';

const writableStore = writable(1);
const readableStore = readonly(writableStore);

get

import { get } from 'svelte/store';

const value = get(store);

toStore / fromStore

import { toStore, fromStore } from 'svelte/store';

const $state = writable('hello');
const store = fromStore($state);
const newStore = toStore(() => getValue(), (v) => setValue(v));

svelte/transition 模块

fade

import { fade } from 'svelte/transition';

<div transition:fade={{ duration: 300 }}>content</div>

fly

import { fly } from 'svelte/transition';

<div transition:fly={{ x: 200, duration: 400 }}>content</div>

slide

import { slide } from 'svelte/transition';

<div transition:slide={{ duration: 300 }}>content</div>

scale

import { scale } from 'svelte/transition';

<div transition:scale={{ start: 0.5, duration: 300 }}>content</div>

draw

import { draw } from 'svelte/transition';

<svg transition:draw={{ duration: 1000 }}>
  <path d="M0 0 L100 100" />
</svg>

blur

import { blur } from 'svelte/transition';

<div transition:blur={{ amount: 10 }}>content</div>

fly + fade 组合

import { fly, fade } from 'svelte/transition';

<div transition:fly|global={{ y: 200 }} fade>
  content
</div>

svelte/animate 模块

flip

import { flip } from 'svelte/animate';

{#each list as item (item.id)}
  <div animate:flip={{ delay: 0, duration: 300 }}>
    {item.name}
  </div>
{/each}

svelte/easing 模块

内置缓动函数

import { cubicOut, elasticOut, linear } from 'svelte/easing';

<div transition:fly={{ y: 200, easing: cubicOut }}>
  content
</div>

常用缓动函数:

  • linear - 线性
  • cubicIn/cubicOut/cubicInOut - 立方
  • elasticOut/elasticIn/elasticInOut - 弹性
  • bounceOut/bounceIn/bounceInOut - 弹跳
  • backOut/backIn/backInOut - 回退

svelte/events 模块

on 事件处理

import { on } from 'svelte/events';

const handler = on(element, 'click', (event) => {
  console.log('clicked');
});

// 清理
handler.destroy();

svelte/motion 模块

tweened

import { tweened } from 'svelte/motion';

const size = tweened(0, { duration: 300, easing: cubicOut });
size.set(100);

spring

import { spring } from 'svelte/motion';

const pos = spring({ x: 0, y: 0 }, { stiffness: 0.1, damping: 0.25 });
pos.set({ x: 100, y: 100 });

svelte/reactivity 模块

Source

import { source } from 'svelte/reactivity';

const count = source(0);
count.set(1);
count.update(n => n + 1);
console.log(count.get());

Derived

import { derived } from 'svelte/reactivity';

const doubled = derived(count, $c => $c * 2);

svelte/compiler 模块

compile

import { compile } from 'svelte/compiler';

const result = compile(sourceCode, {
  filename: 'App.svelte',
  generate: 'dom'
});

svelte/server 模块

render

import { render } from 'svelte/server';

const { html, head } = render(App, {
  props: { data: 'value' }
});

错误与警告代码

编译器错误

// 错误代码示例
// x-eof-unexpected - 意外的文件结束
// css-expected-close-tag - CSS 缺少关闭标签

运行时错误

// ownership_invalid_mutation - 修改非拥有的状态
// state_unsafe_mutation - 不安全的状态修改

资源索引

注意事项

  • store 的 $ 前缀在组件中自动订阅和取消订阅
  • transition 函数返回的对象可以包含 css 或 tick 函数
  • 使用 untrack 在 effect 中避免依赖追踪

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.