keyframekit 1.1.9 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +8 -1
  2. package/dist/KeyframeKit.d.ts +3 -3
  3. package/dist/KeyframeKit.d.ts.map +1 -1
  4. package/dist/KeyframeKit.js +3 -3
  5. package/dist/KeyframeKit.js.map +1 -1
  6. package/dist/KeyframeKit.min.js +1 -0
  7. package/dist/KeyframeKit.min.js.map +1 -0
  8. package/package.json +7 -4
  9. package/src/KeyframeKit.ts +6 -6
  10. package/docs/.vitepress/components/Playground/Playground.js +0 -243
  11. package/docs/.vitepress/components/Playground/Playground.vue +0 -208
  12. package/docs/.vitepress/components/Playground/defaultExample.js +0 -175
  13. package/docs/.vitepress/components/Playground/interFont.js +0 -14
  14. package/docs/.vitepress/components/Playground/themes/githubDark.js +0 -402
  15. package/docs/.vitepress/components/Playground/themes/githubLight.js +0 -399
  16. package/docs/.vitepress/components/Playground/themes.js +0 -24
  17. package/docs/.vitepress/config.ts +0 -87
  18. package/docs/.vitepress/referenceNavigation.ts +0 -37
  19. package/docs/.vitepress/theme/base-styles.css +0 -104
  20. package/docs/.vitepress/theme/env.d.ts +0 -5
  21. package/docs/.vitepress/theme/index.ts +0 -40
  22. package/docs/docs/get-started.md +0 -133
  23. package/docs/docs/index.md +0 -17
  24. package/docs/docs/public/icon.png +0 -0
  25. package/docs/docs/public/og-image.png +0 -0
  26. package/docs/docs/public/playground/KeyframeKit/dist/KeyframeKit.d.ts +0 -172
  27. package/docs/docs/public/playground/KeyframeKit/dist/KeyframeKit.d.ts.map +0 -1
  28. package/docs/docs/public/playground/KeyframeKit/dist/KeyframeKit.js +0 -327
  29. package/docs/docs/public/playground/KeyframeKit/dist/KeyframeKit.js.map +0 -1
  30. package/docs/docs/reference/classes/KeyframeEffectParameters.md +0 -97
  31. package/docs/docs/reference/classes/ParsedKeyframes.md +0 -49
  32. package/docs/docs/reference/index.md +0 -20
  33. package/docs/docs/reference/interfaces/KeyframesFactory.md +0 -180
  34. package/docs/docs/reference/navigation.json +0 -64
  35. package/docs/docs/reference/type-aliases/CSSStyleSheetSource.md +0 -7
  36. package/docs/docs/reference/type-aliases/KeyframeArgument.md +0 -9
  37. package/docs/docs/reference/type-aliases/ParsedKeyframesRules.md +0 -15
  38. package/docs/docs/reference/variables/default.md +0 -7
  39. package/docs/package-lock.json +0 -2321
  40. package/docs/package.json +0 -22
  41. package/docs/typedoc/plugin-markdown-mdn-links-fix.js +0 -43
  42. package/docs/typedoc/plugin-param-names.js +0 -17
  43. package/docs/typedoc.config.js +0 -78
  44. package/rollup.config.js +0 -42
  45. package/tsconfig.json +0 -47
  46. package/vercel.json +0 -14
@@ -1,327 +0,0 @@
1
- /*
2
- * KeyframeKit
3
- * MIT License
4
- *
5
- * See README.md for usage.
6
- */
7
- const CHARS = {
8
- PERCENT_SIGN: '%',
9
- HYPHEN_MINUS: '-',
10
- DOUBLE_HYPHEN_MINUS: '--',
11
- WEBKIT_PREFIX: '-webkit-'
12
- };
13
- class KeyframesFactory {
14
- Error = {
15
- /** Keyframes rule name must be a string. */
16
- KeyframesRuleNameTypeError: class KeyframesRuleNameTypeError extends TypeError {
17
- message = `Keyframes rule name must be a string.`;
18
- },
19
- /** Source must be either a `CSSStyleSheet` or a `StyleSheetList`. */
20
- SourceTypeError: class SourceTypeError extends TypeError {
21
- message = `Source must be either a CSSStyleSheet or a StyleSheetList.`;
22
- },
23
- /** The stylesheet could not be imported. */
24
- StyleSheetImportError: class StyleSheetImportError extends Error {
25
- message = `The stylesheet could not be imported.`;
26
- }
27
- };
28
- /**
29
- * Gets a document's stylesheets when it loads,
30
- * or immediately returns them if it's already loaded.
31
- * @param obj
32
- * @param obj.document The document to get stylesheets from.
33
- */
34
- async getDocumentStyleSheetsOnLoad({ document = window.document } = {}) {
35
- await waitForDocumentLoad({
36
- document: document
37
- });
38
- return document.styleSheets;
39
- }
40
- /**
41
- * Imports a stylesheet from a URL.
42
- * @param url The URL of the stylesheet to import.
43
- * @remarks
44
- * Note: `@import` rules won't be resolved in imported stylesheets.
45
- * See https://github.com/WICG/construct-stylesheets/issues/119#issuecomment-588352418.
46
- */
47
- async importStyleSheet(url) {
48
- const resp = await fetch(url);
49
- if (!resp.ok) {
50
- throw new this.Error.StyleSheetImportError();
51
- }
52
- const respText = await resp.text();
53
- // remove file name from URL to get base URL
54
- const baseURL = url.split('/').slice(0, -1).join('/');
55
- const styleSheet = new CSSStyleSheet({
56
- baseURL: baseURL
57
- });
58
- await styleSheet.replace(respText);
59
- return styleSheet;
60
- }
61
- /**
62
- * Gets a CSS keyframes rule from a stylesheet or stylesheet list,
63
- * then converts it to Web Animations API keyframes.
64
- * @param obj
65
- * @param obj.of The name of the `@keyframes` rule to get keyframes from.
66
- * @param obj.in The stylesheet or stylesheet list where the rule resides.
67
- */
68
- getStyleSheetKeyframes({ of: ruleName, in: source }) {
69
- if (typeof ruleName !== 'string') {
70
- throw new this.Error.KeyframesRuleNameTypeError();
71
- }
72
- if (source instanceof StyleSheetList) {
73
- return this.#getStyleSheetKeyframesInStyleSheetList({
74
- of: ruleName,
75
- styleSheetList: source
76
- });
77
- }
78
- else if (source instanceof CSSStyleSheet) {
79
- return this.#getStyleSheetKeyframesInStyleSheet({
80
- of: ruleName,
81
- styleSheet: source
82
- });
83
- }
84
- else {
85
- throw new this.Error.SourceTypeError();
86
- }
87
- }
88
- #getStyleSheetKeyframesInStyleSheetList({ of: ruleName, styleSheetList }) {
89
- for (const styleSheet of styleSheetList) {
90
- const keyframesRule = this.#getStyleSheetKeyframesInStyleSheet({
91
- of: ruleName,
92
- styleSheet: styleSheet
93
- });
94
- if (keyframesRule !== undefined) {
95
- return keyframesRule;
96
- }
97
- }
98
- }
99
- #getStyleSheetKeyframesInStyleSheet({ of: ruleName, styleSheet }) {
100
- for (const rule of styleSheet.cssRules) {
101
- if (!(rule instanceof CSSKeyframesRule)) {
102
- continue;
103
- }
104
- if (rule.name === ruleName) {
105
- const keyframes = this.parseKeyframesRule({
106
- rule: rule
107
- });
108
- return keyframes;
109
- }
110
- }
111
- }
112
- /**
113
- * Gets all the CSS keyframes rules in a stylesheet or stylesheet list,
114
- * then converts them to Web Animations API keyframes.
115
- * @param obj
116
- * @param obj.in The style sheet or style sheet list to get keyframes from.
117
- */
118
- getAllStyleSheetKeyframesRules({ in: source }) {
119
- if (source instanceof StyleSheetList) {
120
- return this.#getAllStyleSheetKeyframesRulesInStyleSheetList({
121
- styleSheetList: source
122
- });
123
- }
124
- else if (source instanceof CSSStyleSheet) {
125
- return this.#getAllStyleSheetKeyframesRulesInStyleSheet({
126
- styleSheet: source
127
- });
128
- }
129
- else {
130
- throw new this.Error.SourceTypeError();
131
- }
132
- }
133
- #getAllStyleSheetKeyframesRulesInStyleSheetList({ styleSheetList }) {
134
- let keyframesRules = {};
135
- for (const styleSheet of styleSheetList) {
136
- const styleSheetKeyframesRules = this.#getAllStyleSheetKeyframesRulesInStyleSheet({
137
- styleSheet: styleSheet
138
- });
139
- keyframesRules = {
140
- ...keyframesRules,
141
- ...styleSheetKeyframesRules
142
- };
143
- }
144
- return keyframesRules;
145
- }
146
- #getAllStyleSheetKeyframesRulesInStyleSheet({ styleSheet }) {
147
- let keyframesRules = {};
148
- for (const rule of styleSheet.cssRules) {
149
- if (!(rule instanceof CSSKeyframesRule)) {
150
- continue;
151
- }
152
- const keyframes = this.parseKeyframesRule({
153
- rule: rule
154
- });
155
- keyframesRules[rule.name] = keyframes;
156
- }
157
- return keyframesRules;
158
- }
159
- /**
160
- * Converts a CSS keyframes rule to Web Animations API keyframes.
161
- * @param obj
162
- * @param obj.rule The rule to convert.
163
- */
164
- parseKeyframesRule({ rule: keyframes }) {
165
- let parsedKeyframes = [];
166
- for (const keyframe of keyframes) {
167
- // remove trailing '%'
168
- /// https://drafts.csswg.org/css-animations/#dom-csskeyframerule-keytext
169
- const percentString = removeSuffix({
170
- of: keyframe.keyText,
171
- suffix: CHARS.PERCENT_SIGN
172
- });
173
- const percent = Number(percentString);
174
- const offset = percent / 100;
175
- let parsedProperties = {};
176
- for (const propertyName of keyframe.style) {
177
- /// https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/getPropertyValue
178
- const propertyValue = keyframe.style.getPropertyValue(propertyName);
179
- /// https://drafts.csswg.org/web-animations-1/#ref-for-animation-property-name-to-idl-attribute-name%E2%91%A0
180
- const attributeName = this.#animationPropertyNameToIDLAttributeName(propertyName);
181
- parsedProperties[attributeName] = propertyValue;
182
- }
183
- const parsedKeyframe = {
184
- ...parsedProperties,
185
- offset: offset
186
- };
187
- parsedKeyframes.push(parsedKeyframe);
188
- }
189
- const parsedKeyframesInstance = new ParsedKeyframes(parsedKeyframes);
190
- return parsedKeyframesInstance;
191
- }
192
- /** https://drafts.csswg.org/web-animations-1/#animation-property-name-to-idl-attribute-name */
193
- #animationPropertyNameToIDLAttributeName(property) {
194
- if (this.#isCustomPropertyName(property))
195
- return property;
196
- if (property === 'float')
197
- return 'cssFloat';
198
- if (property === 'offset')
199
- return 'cssOffset';
200
- // https://drafts.csswg.org/cssom/#ref-for-supported-css-property%E2%91%A2
201
- const lowercaseFirst = this.#isWebkitCasedAttribute(property);
202
- return this.#cssPropertyToIDLAttribute(property, lowercaseFirst);
203
- }
204
- /** https://drafts.csswg.org/cssom/#css-property-to-idl-attribute */
205
- #cssPropertyToIDLAttribute(property, lowercaseFirst = false) {
206
- let output = '';
207
- let uppercaseNext = false;
208
- if (lowercaseFirst) {
209
- property = property.slice(1);
210
- }
211
- for (const c of property) {
212
- if (c === CHARS.HYPHEN_MINUS) {
213
- uppercaseNext = true;
214
- }
215
- else if (uppercaseNext) {
216
- uppercaseNext = false;
217
- output += c.toUpperCase();
218
- }
219
- else {
220
- output += c;
221
- }
222
- }
223
- return output;
224
- }
225
- /** https://drafts.csswg.org/css-variables-2/#typedef-custom-property-name */
226
- #isCustomPropertyName(property) {
227
- return property.startsWith(CHARS.DOUBLE_HYPHEN_MINUS) &&
228
- property !== CHARS.DOUBLE_HYPHEN_MINUS;
229
- }
230
- /** https://drafts.csswg.org/cssom/#ref-for-supported-css-property%E2%91%A2 */
231
- #isWebkitCasedAttribute(property) {
232
- return property.startsWith(CHARS.WEBKIT_PREFIX);
233
- }
234
- }
235
- export default new KeyframesFactory();
236
- /** https://drafts.csswg.org/web-animations-1/#the-keyframeeffect-interface */
237
- export class KeyframeEffectParameters {
238
- keyframes;
239
- options;
240
- /**
241
- * @param obj
242
- * @param obj.keyframes [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Keyframe_Formats)
243
- * @param obj.options [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/KeyframeEffect#options)
244
- */
245
- constructor({ keyframes, options = {} }) {
246
- this.keyframes = keyframes;
247
- this.options = this.#parseOptionsArg(options);
248
- }
249
- /**
250
- * @param obj
251
- * @param obj.target An element to attach the animation to.
252
- * @param obj.options Additional keyframe effect options. Can override existing keys.
253
- * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/KeyframeEffect#options)
254
- * @param obj.timeline [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Animation/Animation#timeline)
255
- *
256
- * @see Specifications:
257
- * - https://drafts.csswg.org/web-animations-1/#the-keyframeeffect-interface
258
- * - https://drafts.csswg.org/web-animations-1/#the-animation-interface
259
- */
260
- toAnimation({ target, options: additionalOptions = {}, timeline = document.timeline }) {
261
- additionalOptions = this.#parseOptionsArg(additionalOptions);
262
- // override existing option keys with additional options
263
- const options = {
264
- ...this.options, ...additionalOptions
265
- };
266
- const keyframeEffect = new KeyframeEffect(target, this.keyframes, options);
267
- const animation = new Animation(keyframeEffect, timeline);
268
- return animation;
269
- }
270
- /** https://drafts.csswg.org/web-animations-1/#dom-keyframeeffect-keyframeeffect-target-keyframes-options-options
271
- https://drafts.csswg.org/web-animations-1/#dom-effecttiming-duration */
272
- #parseOptionsArg(options) {
273
- if (typeof options === 'number') {
274
- return { duration: options };
275
- }
276
- return options;
277
- }
278
- }
279
- export class ParsedKeyframes {
280
- keyframes;
281
- constructor(keyframes) {
282
- this.keyframes = keyframes;
283
- }
284
- /**
285
- * @param options
286
- * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/KeyframeEffect#options)
287
- */
288
- toKeyframeEffect(options) {
289
- let keyframeEffect;
290
- // convert (required) nullable to optional
291
- if (options !== null) {
292
- keyframeEffect = new KeyframeEffectParameters({
293
- keyframes: this.keyframes,
294
- options: options
295
- });
296
- }
297
- else {
298
- keyframeEffect = new KeyframeEffectParameters({
299
- keyframes: this.keyframes
300
- });
301
- }
302
- return keyframeEffect;
303
- }
304
- }
305
- // MARK: - Util
306
- function removeSuffix({ of: string, suffix }) {
307
- return string.slice(0, -suffix.length);
308
- }
309
- async function waitForDocumentLoad({ document }) {
310
- if (document.readyState === 'complete') {
311
- return;
312
- }
313
- const { promise, resolve } = Promise.withResolvers();
314
- function onReadyStateChange() {
315
- if (document.readyState === 'complete') {
316
- resolve(null);
317
- }
318
- }
319
- const listener = [
320
- 'readystatechange',
321
- onReadyStateChange
322
- ];
323
- document.addEventListener(...listener);
324
- await promise;
325
- document.removeEventListener(...listener);
326
- }
327
- //# sourceMappingURL=KeyframeKit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KeyframeKit.js","sourceRoot":"","sources":["../src/KeyframeKit.ts"],"names":[],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- [KeyframeKit](../index.md) / KeyframeEffectParameters
2
-
3
- # Class: KeyframeEffectParameters
4
-
5
- https://drafts.csswg.org/web-animations-1/#the-keyframeeffect-interface
6
-
7
- ## Constructors
8
-
9
- ### Constructor
10
-
11
- ```ts
12
- new KeyframeEffectParameters(obj: {
13
- keyframes: KeyframeArgument;
14
- options?: number | KeyframeEffectOptions;
15
- }): KeyframeEffectParameters;
16
- ```
17
-
18
- #### Parameters
19
-
20
- ##### obj
21
-
22
- ###### keyframes
23
-
24
- [`KeyframeArgument`](../type-aliases/KeyframeArgument.md)
25
-
26
- [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Keyframe_Formats)
27
-
28
- ###### options?
29
-
30
- `number` \| `KeyframeEffectOptions` = `{}`
31
-
32
- [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/KeyframeEffect#options)
33
-
34
- #### Returns
35
-
36
- `KeyframeEffectParameters`
37
-
38
- ## Properties
39
-
40
- ### keyframes
41
-
42
- ```ts
43
- keyframes: KeyframeArgument;
44
- ```
45
-
46
- ***
47
-
48
- ### options
49
-
50
- ```ts
51
- options: KeyframeEffectOptions;
52
- ```
53
-
54
- ## Methods
55
-
56
- ### toAnimation()
57
-
58
- ```ts
59
- toAnimation(obj: {
60
- options?: number | KeyframeEffectOptions;
61
- target: Element | null;
62
- timeline?: AnimationTimeline | null;
63
- }): Animation;
64
- ```
65
-
66
- #### Parameters
67
-
68
- ##### obj
69
-
70
- ###### options?
71
-
72
- `number` \| `KeyframeEffectOptions` = `{}`
73
-
74
- Additional keyframe effect options. Can override existing keys.
75
- [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/KeyframeEffect#options)
76
-
77
- ###### target
78
-
79
- [`Element`](https://developer.mozilla.org/docs/Web/API/Element) \| `null`
80
-
81
- An element to attach the animation to.
82
-
83
- ###### timeline?
84
-
85
- [`AnimationTimeline`](https://developer.mozilla.org/docs/Web/API/AnimationTimeline) \| `null` = `document.timeline`
86
-
87
- [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Animation/Animation#timeline)
88
-
89
- #### Returns
90
-
91
- [`Animation`](https://developer.mozilla.org/docs/Web/API/Animation)
92
-
93
- #### See
94
-
95
- Specifications:
96
- - https://drafts.csswg.org/web-animations-1/#the-keyframeeffect-interface
97
- - https://drafts.csswg.org/web-animations-1/#the-animation-interface
@@ -1,49 +0,0 @@
1
- [KeyframeKit](../index.md) / ParsedKeyframes
2
-
3
- # Class: ParsedKeyframes
4
-
5
- ## Constructors
6
-
7
- ### Constructor
8
-
9
- ```ts
10
- new ParsedKeyframes(keyframes: Keyframe[]): ParsedKeyframes;
11
- ```
12
-
13
- #### Parameters
14
-
15
- ##### keyframes
16
-
17
- `Keyframe`[]
18
-
19
- #### Returns
20
-
21
- `ParsedKeyframes`
22
-
23
- ## Properties
24
-
25
- ### keyframes
26
-
27
- ```ts
28
- keyframes: Keyframe[];
29
- ```
30
-
31
- ## Methods
32
-
33
- ### toKeyframeEffect()
34
-
35
- ```ts
36
- toKeyframeEffect(options: number | KeyframeEffectOptions | null): KeyframeEffectParameters;
37
- ```
38
-
39
- #### Parameters
40
-
41
- ##### options
42
-
43
- [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/KeyframeEffect/KeyframeEffect#options)
44
-
45
- `number` | `KeyframeEffectOptions` | `null`
46
-
47
- #### Returns
48
-
49
- [`KeyframeEffectParameters`](KeyframeEffectParameters.md)
@@ -1,20 +0,0 @@
1
- # KeyframeKit
2
-
3
- ## Classes
4
-
5
- - [KeyframeEffectParameters](classes/KeyframeEffectParameters.md)
6
- - [ParsedKeyframes](classes/ParsedKeyframes.md)
7
-
8
- ## Interfaces
9
-
10
- - [KeyframesFactory](interfaces/KeyframesFactory.md)
11
-
12
- ## Type Aliases
13
-
14
- - [CSSStyleSheetSource](type-aliases/CSSStyleSheetSource.md)
15
- - [KeyframeArgument](type-aliases/KeyframeArgument.md)
16
- - [ParsedKeyframesRules](type-aliases/ParsedKeyframesRules.md)
17
-
18
- ## Variables
19
-
20
- - [default](variables/default.md)
@@ -1,180 +0,0 @@
1
- [KeyframeKit](../index.md) / KeyframesFactory
2
-
3
- # Interface: KeyframesFactory
4
-
5
- ## Properties
6
-
7
- ### Error
8
-
9
- ```ts
10
- readonly Error: {
11
- KeyframesRuleNameTypeError: typeof KeyframesRuleNameTypeError;
12
- SourceTypeError: typeof SourceTypeError;
13
- StyleSheetImportError: typeof StyleSheetImportError;
14
- };
15
- ```
16
-
17
- #### KeyframesRuleNameTypeError
18
-
19
- ```ts
20
- readonly KeyframesRuleNameTypeError: typeof KeyframesRuleNameTypeError;
21
- ```
22
-
23
- Keyframes rule name must be a string.
24
-
25
- #### SourceTypeError
26
-
27
- ```ts
28
- readonly SourceTypeError: typeof SourceTypeError;
29
- ```
30
-
31
- Source must be either a `CSSStyleSheet` or a `StyleSheetList`.
32
-
33
- #### StyleSheetImportError
34
-
35
- ```ts
36
- readonly StyleSheetImportError: typeof StyleSheetImportError;
37
- ```
38
-
39
- The stylesheet could not be imported.
40
-
41
- ## Methods
42
-
43
- ### getAllStyleSheetKeyframesRules()
44
-
45
- ```ts
46
- getAllStyleSheetKeyframesRules(obj: {
47
- in: CSSStyleSheetSource;
48
- }): ParsedKeyframesRules;
49
- ```
50
-
51
- Gets all the CSS keyframes rules in a stylesheet or stylesheet list,
52
- then converts them to Web Animations API keyframes.
53
-
54
- #### Parameters
55
-
56
- ##### obj
57
-
58
- ###### in
59
-
60
- [`CSSStyleSheetSource`](../type-aliases/CSSStyleSheetSource.md)
61
-
62
- The style sheet or style sheet list to get keyframes from.
63
-
64
- #### Returns
65
-
66
- [`ParsedKeyframesRules`](../type-aliases/ParsedKeyframesRules.md)
67
-
68
- ***
69
-
70
- ### getDocumentStyleSheetsOnLoad()
71
-
72
- ```ts
73
- getDocumentStyleSheetsOnLoad(obj?: {
74
- document?: Document;
75
- }): Promise<StyleSheetList>;
76
- ```
77
-
78
- Gets a document's stylesheets when it loads,
79
- or immediately returns them if it's already loaded.
80
-
81
- #### Parameters
82
-
83
- ##### obj?
84
-
85
- ###### document?
86
-
87
- [`Document`](https://developer.mozilla.org/docs/Web/API/Document) = `window.document`
88
-
89
- The document to get stylesheets from.
90
-
91
- #### Returns
92
-
93
- [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`StyleSheetList`](https://developer.mozilla.org/docs/Web/API/StyleSheetList)\>
94
-
95
- ***
96
-
97
- ### getStyleSheetKeyframes()
98
-
99
- ```ts
100
- getStyleSheetKeyframes(obj: {
101
- in: CSSStyleSheetSource;
102
- of: string;
103
- }): ParsedKeyframes | undefined;
104
- ```
105
-
106
- Gets a CSS keyframes rule from a stylesheet or stylesheet list,
107
- then converts it to Web Animations API keyframes.
108
-
109
- #### Parameters
110
-
111
- ##### obj
112
-
113
- ###### in
114
-
115
- [`CSSStyleSheetSource`](../type-aliases/CSSStyleSheetSource.md)
116
-
117
- The stylesheet or stylesheet list where the rule resides.
118
-
119
- ###### of
120
-
121
- `string`
122
-
123
- The name of the `@keyframes` rule to get keyframes from.
124
-
125
- #### Returns
126
-
127
- [`ParsedKeyframes`](../classes/ParsedKeyframes.md) \| `undefined`
128
-
129
- ***
130
-
131
- ### importStyleSheet()
132
-
133
- ```ts
134
- importStyleSheet(url: string): Promise<CSSStyleSheet>;
135
- ```
136
-
137
- Imports a stylesheet from a URL.
138
-
139
- #### Parameters
140
-
141
- ##### url
142
-
143
- `string`
144
-
145
- The URL of the stylesheet to import.
146
-
147
- #### Returns
148
-
149
- [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`CSSStyleSheet`](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet)\>
150
-
151
- #### Remarks
152
-
153
- Note: `@import` rules won't be resolved in imported stylesheets.
154
- See https://github.com/WICG/construct-stylesheets/issues/119#issuecomment-588352418.
155
-
156
- ***
157
-
158
- ### parseKeyframesRule()
159
-
160
- ```ts
161
- parseKeyframesRule(obj: {
162
- rule: CSSKeyframesRule;
163
- }): ParsedKeyframes;
164
- ```
165
-
166
- Converts a CSS keyframes rule to Web Animations API keyframes.
167
-
168
- #### Parameters
169
-
170
- ##### obj
171
-
172
- ###### rule
173
-
174
- [`CSSKeyframesRule`](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule)
175
-
176
- The rule to convert.
177
-
178
- #### Returns
179
-
180
- [`ParsedKeyframes`](../classes/ParsedKeyframes.md)