diff --git a/CHANGELOG-old.md b/CHANGELOG-old.md
index 7632139c7..cf12974c9 100644
--- a/CHANGELOG-old.md
+++ b/CHANGELOG-old.md
@@ -468,7 +468,7 @@ Some goodness from pull-requests.
* plugins/convertPathData: do not remove very first M from the path data (fix [#24](https://github.com/svg/svgo/issues/24))
* plugins/convertPathData: optimize path data in <glyph> and <missing-glyph> (close [#20](https://github.com/svg/svgo/issues/20))
* plugins/convertTransform: add patternTransform attribute to the process (close [#15](https://github.com/svg/svgo/issues/15))
-* plugins/convertTransform: Firefox: removing extra space in front of negative number is alowed only in path data, but not in transform (fix [#12](https://github.com/svg/svgo/issues/12))
+* plugins/convertTransform: Firefox: removing extra space in front of negative number is allowed only in path data, but not in transform (fix [#12](https://github.com/svg/svgo/issues/12))
* plugins/removeXMLProcInst: remove only 'xml' but not 'xml-stylesheet' (fix [#21](https://github.com/svg/svgo/issues/15))
* plugins/collapseGroups: merge split-level transforms (fix [#13](https://github.com/svg/svgo/issues/13))
* jsdoc corrections
diff --git a/README.md b/README.md
index ee48f557d..1ac3d59c6 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ SVG files, especially those exported from vector editors, usually contain a lot
## Installation
-You can install SVGO globablly through npm, yarn, or pnpm. Alternatively, drop the global flag (`global`/`-g`) to use it in your Node.js project.
+You can install SVGO globally through npm, yarn, or pnpm. Alternatively, drop the global flag (`global`/`-g`) to use it in your Node.js project.
```sh
# npm
diff --git a/docs/02-preset-default.mdx b/docs/02-preset-default.mdx
index 1b3fdd6f6..f8d45c72c 100644
--- a/docs/02-preset-default.mdx
+++ b/docs/02-preset-default.mdx
@@ -71,7 +71,7 @@ module.exports = {
};
```
-Alternatively, you can also drop `default-preset` entirely, and configure your own plugin pipeline from scratch, with only the desireable plugins:
+Alternatively, you can also drop `default-preset` entirely, and configure your own plugin pipeline from scratch, with only the desirable plugins:
```js
module.exports = {
diff --git a/docs/03-plugins/add-classes-to-svg-element.mdx b/docs/03-plugins/add-classes-to-svg-element.mdx
index 121c58ea6..4b6b71d60 100644
--- a/docs/03-plugins/add-classes-to-svg-element.mdx
+++ b/docs/03-plugins/add-classes-to-svg-element.mdx
@@ -18,9 +18,9 @@ If there is no `class` attribute to begin with, it will be added. However, if th
:::
-If you have a standalone SVG, this is not an optimization and will increase the size of the SVG document. This plugin is only relavent when considering multiple SVGs that may be inlined a parent document.
+If you have a standalone SVG, this is not an optimization and will increase the size of the SVG document. This plugin is only relevant when considering multiple SVGs that may be inlined a parent document.
-By adding classes, if the parent document is aware, you can share styles across all inlined SVG elements.
+By adding classes, if the parent document is aware, you can share styles across all inlined SVG elements.
## Usage
diff --git a/docs/03-plugins/convert-transform.mdx b/docs/03-plugins/convert-transform.mdx
index 91e56ce84..3aa4d8c8a 100644
--- a/docs/03-plugins/convert-transform.mdx
+++ b/docs/03-plugins/convert-transform.mdx
@@ -8,7 +8,7 @@ svgo:
description: Convert transforms to their shorthand alternatives.
default: true
degPrecision:
- description: Number of decimal places to round degress values to, using conventional rounding rules. Used for rotate and skew.
+ description: Number of decimal places to round degrees values to, using conventional rounding rules. Used for rotate and skew.
floatPrecision:
description: Number of decimal places to round to, using conventional rounding rules.
default: 3
diff --git a/docs/03-plugins/index.mdx b/docs/03-plugins/index.mdx
index faf70a1ea..8ca0a1c1f 100644
--- a/docs/03-plugins/index.mdx
+++ b/docs/03-plugins/index.mdx
@@ -4,7 +4,7 @@ title: Plugins
All optimizations performed by SVGO are through the various plugins that are either built-in, or provided in your SVGO config.
-Built-in plugins are focused around either optimzations or compatibility. However, the plugin architecure is very flexible, so plugins can be made to do effectively anything.
+Built-in plugins are focused around either optimizations or compatibility. However, the plugin architecture is very flexible, so plugins can be made to do effectively anything.
## Presets
diff --git a/docs/03-plugins/minify-styles.mdx b/docs/03-plugins/minify-styles.mdx
index f6f4fb4d3..d8ca28222 100644
--- a/docs/03-plugins/minify-styles.mdx
+++ b/docs/03-plugins/minify-styles.mdx
@@ -5,7 +5,7 @@ svgo:
defaultPlugin: true
parameters:
usage:
- description: If to collect usage data such as tags, classes, and IDs to pass to CSSO. This is an object with four properties, which are each configured with a boolean, tags, ids, classes, and force. By default, if a script is found this does not pass usage data to CSSO, but this can be overriden with force, which may yield destructive changes.
+ description: If to collect usage data such as tags, classes, and IDs to pass to CSSO. This is an object with four properties, which are each configured with a boolean, tags, ids, classes, and force. By default, if a script is found this does not pass usage data to CSSO, but this can be overridden with force, which may yield destructive changes.
default: true
---
diff --git a/docs/03-plugins/remove-attrs.mdx b/docs/03-plugins/remove-attrs.mdx
index 6446c438d..096041498 100644
--- a/docs/03-plugins/remove-attrs.mdx
+++ b/docs/03-plugins/remove-attrs.mdx
@@ -7,7 +7,7 @@ svgo:
description: A selector that matches attributes.
default: null
elemSeparator:
- description: The pattern syntax used by this plugin is element:attribute:value, this changes the delimeter from : to another string.
+ description: The pattern syntax used by this plugin is element:attribute:value, this changes the delimiter from : to another string.
default: ":"
preserveCurrentColor:
description: If to ignore the attribute if it's set to currentColor.
diff --git a/lib/path.js b/lib/path.js
index c8782ce80..1e383dd98 100644
--- a/lib/path.js
+++ b/lib/path.js
@@ -228,7 +228,7 @@ const parsePathData = (string) => {
// flush arguments when necessary count is reached
if (args.length === argsCount) {
pathData.push({ command, args });
- // subsequent moveto coordinates are threated as implicit lineto commands
+ // subsequent moveto coordinates are treated as implicit lineto commands
if (command === 'M') {
command = 'L';
}
diff --git a/lib/path.test.js b/lib/path.test.js
index dc0e976c5..c7d4e69a4 100644
--- a/lib/path.test.js
+++ b/lib/path.test.js
@@ -33,7 +33,7 @@ describe('parse path data', () => {
{ command: 'M', args: [0, 10] },
]);
});
- it('should forbid multipe commas in a row', () => {
+ it('should forbid multiple commas in a row', () => {
expect(parsePathData('M0 , , 10')).toEqual([]);
});
it('should stop when unknown char appears', () => {
diff --git a/lib/svgo.d.ts b/lib/svgo.d.ts
index b5770f957..d98d12931 100644
--- a/lib/svgo.d.ts
+++ b/lib/svgo.d.ts
@@ -30,7 +30,7 @@ export type Config = {
path?: string;
/** Pass over SVGs multiple times to ensure all optimizations are applied. */
multipass?: boolean;
- /** Precision of floating point numbers. Will be passed to each plugin that suppors this param. */
+ /** Precision of floating point numbers. Will be passed to each plugin that supports this param. */
floatPrecision?: number;
/**
* Plugins configuration
diff --git a/plugins/cleanupAttrs.js b/plugins/cleanupAttrs.js
index 399de1940..af66193a4 100644
--- a/plugins/cleanupAttrs.js
+++ b/plugins/cleanupAttrs.js
@@ -22,7 +22,7 @@ exports.fn = (root, params) => {
enter: (node) => {
for (const name of Object.keys(node.attributes)) {
if (newlines) {
- // new line which requires a space instead of themselve
+ // new line which requires a space instead of themself
node.attributes[name] = node.attributes[name].replace(
regNewlinesNeedSpace,
(match, p1, p2) => p1 + ' ' + p2
diff --git a/plugins/collapseGroups.js b/plugins/collapseGroups.js
index ff38caff6..6042a01ce 100644
--- a/plugins/collapseGroups.js
+++ b/plugins/collapseGroups.js
@@ -63,7 +63,7 @@ exports.fn = () => {
return;
}
- // move group attibutes to the single child element
+ // move group attributes to the single child element
if (
Object.keys(node.attributes).length !== 0 &&
node.children.length === 1
diff --git a/plugins/convertPathData.js b/plugins/convertPathData.js
index c100dd263..6229d9f76 100644
--- a/plugins/convertPathData.js
+++ b/plugins/convertPathData.js
@@ -593,7 +593,7 @@ function filters(
}
}
- // Rounding relative coordinates, taking in account accummulating error
+ // Rounding relative coordinates, taking in account accumulating error
// to get closer to absolute coordinates. Sum of rounded value remains same:
// l .25 3 .25 2 .25 3 .25 2 -> l .3 3 .2 2 .3 3 .2 2
if (precision !== false) {
@@ -975,7 +975,7 @@ function getIntersection(coords) {
c2 = coords[4] * coords[7] - coords[5] * coords[6], // x1 * y2 - x2 * y1
denom = a1 * b2 - a2 * b1;
- if (!denom) return; // parallel lines havn't an intersection
+ if (!denom) return; // parallel lines haven't an intersection
/**
* @type {Point}
diff --git a/plugins/convertShapeToPath.js b/plugins/convertShapeToPath.js
index 7705fa97d..8a3b5a1f4 100644
--- a/plugins/convertShapeToPath.js
+++ b/plugins/convertShapeToPath.js
@@ -139,7 +139,7 @@ exports.fn = (root, params) => {
delete node.attributes.r;
}
- // optionally covert ellipse
+ // optionally convert ellipse
if (node.name === 'ellipse' && convertArcs) {
const ecx = Number(node.attributes.cx || '0');
const ecy = Number(node.attributes.cy || '0');
diff --git a/plugins/convertStyleToAttrs.js b/plugins/convertStyleToAttrs.js
index 5d5107d6f..662119e48 100644
--- a/plugins/convertStyleToAttrs.js
+++ b/plugins/convertStyleToAttrs.js
@@ -19,7 +19,7 @@ const rSingleQuotes = "'(?:[^'\\n\\r\\\\]|" + rEscape + ")*?(?:'|$)"; // string
const rQuotes = '"(?:[^"\\n\\r\\\\]|' + rEscape + ')*?(?:"|$)'; // string in double quotes: "smth"
const rQuotedString = new RegExp('^' + g(rSingleQuotes, rQuotes) + '$');
// Parentheses, E.g.: url(data:image/png;base64,iVBO...).
-// ':' and ';' inside of it should be threated as is. (Just like in strings.)
+// ':' and ';' inside of it should be treated as is. (Just like in strings.)
const rParenthesis =
'\\(' + g('[^\'"()\\\\]+', rEscape, rSingleQuotes, rQuotes) + '*?' + '\\)';
// The value. It can have strings and parentheses (see above). Fallbacks to anything in case of unexpected input.
diff --git a/plugins/convertTransform.js b/plugins/convertTransform.js
index 60e0214f5..b69e17a3f 100644
--- a/plugins/convertTransform.js
+++ b/plugins/convertTransform.js
@@ -131,7 +131,7 @@ const convertTransform = (item, attrName, params) => {
* Defines precision to work with certain parts.
* transformPrecision - for scale and four first matrix parameters (needs a better precision due to multiplying),
* floatPrecision - for translate including two last matrix and rotate parameters,
- * degPrecision - for rotate and skew. By default it's equal to (rougly)
+ * degPrecision - for rotate and skew. By default it's equal to (roughly)
* transformPrecision - 2 or floatPrecision whichever is lower. Can be set in params.
*
* @type {(data: Array, params: TransformParams) => TransformParams}
@@ -294,7 +294,7 @@ const convertToShorts = (transforms, params) => {
/**
* Remove useless transforms.
*
- * @type {(trasforms: Array) => Array}
+ * @type {(transforms: Array) => Array}
*/
const removeUseless = (transforms) => {
return transforms.filter((transform) => {
diff --git a/plugins/inlineStyles.js b/plugins/inlineStyles.js
index a416f6e45..1cdcebe75 100644
--- a/plugins/inlineStyles.js
+++ b/plugins/inlineStyles.js
@@ -370,7 +370,7 @@ exports.fn = (root, params) => {
// csstree v2 changed this type
if (style.cssAst.children.isEmpty) {
- // remove emtpy style element
+ // remove empty style element
detachNodeFromParent(style.node, style.parentNode);
} else {
// update style element if any styles left
diff --git a/plugins/plugins-types.d.ts b/plugins/plugins-types.d.ts
index 8e3972c1c..0499f627f 100644
--- a/plugins/plugins-types.d.ts
+++ b/plugins/plugins-types.d.ts
@@ -110,7 +110,7 @@ type DefaultPlugins = {
*/
restructure?: boolean;
/**
- * Enables merging of @media rules with the same media query by splitted by other rules.
+ * Enables merging of @media rules with the same media query split by other rules.
* The optimisation is unsafe in general, but should work fine in most cases. Use it on your own risk.
* @default false
*/
diff --git a/plugins/removeXlink.js b/plugins/removeXlink.js
index db55ab50b..d341b673e 100644
--- a/plugins/removeXlink.js
+++ b/plugins/removeXlink.js
@@ -72,7 +72,7 @@ exports.fn = (_, params) => {
const xlinkPrefixes = [];
/**
- * Namespace prefixes that exist in {@link xlinkPrefixes} but were overriden
+ * Namespace prefixes that exist in {@link xlinkPrefixes} but were overridden
* in a child element to point to another namespace, and so is not treated as
* an XLink attribute.
*
diff --git a/test/svgo/_index.test.js b/test/svgo/_index.test.js
index 5ac5013b6..e9a596d76 100644
--- a/test/svgo/_index.test.js
+++ b/test/svgo/_index.test.js
@@ -35,7 +35,7 @@ describe('svgo', () => {
const result = optimize('', { input: 'file', path: 'input.svg' });
expect(result.data).toEqual('');
});
- it('should preserve style specifity over attributes', async () => {
+ it('should preserve style specificity over attributes', async () => {
const [original, expected] = await parseFixture('style-specifity.svg');
const result = optimize(original, {
input: 'file',