Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@phun-ky/speccer

phun-ky630MIT11.2.31TypeScript support: included

A script to annotate, show spacing specs and to display typography information in documentation/website on HTML elements

a11y, accessibility, anatomy, annotate, annotation, css, design, design system, dissect, dissection, documentation, grid, grid-layout, html, html-elements, information, inspect, javascript, pin, spacing, spec, speccer, specification, specifications, specs, typescript, typography, storybook, stories, react, hooks

readme

@phun-ky/speccer

Speccer hero, with logo and slogan: A zero dependency package to annotate or highlight elements

Commitizen friendly PRs Welcome SemVer 2.0 npm version issues license size npm GitHub Repo stars codecov build

About

Image of speccer

SPECCER was originally created to simplify documenting components in a design system, but it can be used to annotate or highlight any HTML element on a webpage. If you need to draw attention to elements, SPECCER is your tool!

Table of Contents

Installation

npm i --save @phun-ky/speccer

See a live demo.

Usage

Typescript

Types can be found in @phun-ky/speccer/dist/speccer.d.ts.

ESM

Either import and run the required functions:

import '@phun-ky/speccer/dist/speccer.min.css';
import speccer from '@phun-ky/speccer';

// do stuff
speccer();

Lazy loading

If you're importing SPECCER instead of with a script tag, you can use the following approach to apply lazy loading:

import { pin } from "https://esm.sh/@phun-ky/speccer";

const { pinElements } = pin;

/**
 * Callback function for IntersectionObserver
 * @param {IntersectionObserverEntry[]} entries - Array of entries being observed
 * @param {IntersectionObserver} observer - The IntersectionObserver instance
 * @returns {Promise<void>} Promise that resolves when element dissection is complete
 */
const intersectionCallback: IntersectionObserverCallback = async (entries, observer) => {
  entries.forEach(async (entry) => {
    if (entry.intersectionRatio > 0) {
      await pinElements(entry.target);
      observer.unobserve(entry.target);
    }
  });
};

// Creating IntersectionObserver instance with the callback
const pinElementObserver = new IntersectionObserver(intersectionCallback);

/**
 * Function to observe elements using IntersectionObserver
 * @param {Element} el - The element to be observed
 */
const observeElement = (el: Element): void => {
  pinElementObserver.observe(el);
};

// Observing elements with the specified data attribute
document.querySelectorAll('[data-speccer="pin-area"]').forEach((el) => {
  observeElement(el);
});

Script

Or place these script and link tags in your web page:

<link rel="stylesheet" href="../path/to/speccer.min.css" />
<script src="../path/to/speccer.js"></script>

Or with a CDN:

<link
  rel="stylesheet"
  href="https://unpkg.com/@phun-ky/speccer/dist/speccer.min.css"
/>
<script src="https://unpkg.com/@phun-ky/speccer/dist/speccer.js"></script>

And then follow the steps below to display the specifications you want :)

Advanced usage

If you want to control SPECCER a bit more, you have some options. Apply one of these attributes to the script element for different types of initialization:

<script src="../speccer.js" data-<manual|instant|dom|lazy></script>

Or with a CDN:

<script src="https://unpkg.com/@phun-ky/speccer/dist/speccer.js" data-<manual|instant|dom|lazy></script>
Tag Description
data-manual Makes window.speccer() available to be used when you feel like it
data-instant fires off speccer() right away
data-dom Waits for DOMContentLoaded
data-lazy Lazy loads speccer() per specced element

If no attribute is applied, it will default to data-dom, as in, it will initialize when DOMContentLoaded is fired.

React

If you use React, you can use an effect like this:

import React, { useEffect } from 'react';

import debounce from './lib/debounce';
import '@phun-ky/speccer/dist/speccer.min.css';

const Component = () => {
  let speccerEventFunc;

  useEffect(async () => {
    const { default: speccer } = await import('@phun-ky/speccer');

    speccer();

    speccerEventFunc = debounce(function () {
      speccer();
    }, 300);

    window.addEventListener('resize', speccerEventFunc);
    return () => {
      window.removeEventListener('resize', speccerEventFunc);
    };
  }, []);

  return <div />;
};

export default Component;

Or a hook like this:

1. Create a hook

// ./hooks/useSpeccer.ts
import { useEffect } from 'react';
import '@phun-ky/speccer/dist/speccer.min.css';
import debounce from './lib/debounce';

const useSpeccer = () => {
  useEffect(() => {
    let speccerEventFunc: () => void;

    const loadSpeccer = async () => {
      const { default: speccer } = await import('@phun-ky/speccer');
      speccer();

      speccerEventFunc = debounce(() => {
        speccer();
      }, 300);

      window.addEventListener('resize', speccerEventFunc);
    };

    loadSpeccer();

    return () => {
      if (speccerEventFunc) {
        window.removeEventListener('resize', speccerEventFunc);
      }
    };
  }, []);
};

2. Use the hook

import { useSpeccer } from './hooks/useSpeccer';

export const MyComponent = () => {
  …
  useSpeccer();
  …
  return <div data-speccer="pin bracket top">…</div>;
};

Storybook

You can add SPECCER to your stories!

Image of the Storybook implementation

In preview.tsx:

import '@phun-ky/speccer/dist/speccer.min.css';
import { addons } from '@storybook/preview-api';
import { debounce } from '@mui/material'; // or any other debounce function

let speccerEventFunc: (() => void) | undefined;

addons.getChannel().on('docsRendered', async () => {
  const { default: speccer } = await import('@phun-ky/speccer');

  speccer();
  speccerEventFunc = debounce(() => {
    speccer();
  }, 100);

  window.addEventListener('resize', speccerEventFunc);
});

addons.getChannel().on('storyChanged', () => {
  if (speccerEventFunc) {
    window.removeEventListener('resize', speccerEventFunc);
    speccerEventFunc = undefined;
  }

  // Remove all pinned elements
  document.querySelectorAll('.ph-speccer')?.forEach((el) => {
    if (el instanceof HTMLElement) {
      el.remove();
    }
  });
});

And then in your *.stories.tsx:

import { ComponentMeta, ComponentStory } from "@storybook/react";
import { MyComponent } from '../path-to-component/MyComponent';

export default {
    title: 'Components/MyComponent',
    component: MyComponent,
    tags: ['autodocs'],
    …

} as ComponentMeta<typeof MyComponent>

const Template: ComponentStory<typeof MyComponent> = (args) => {

  …
  // you need `data-speccer="pin-area"` on the container of the elements you want to spec
  return (
    <div data-speccer="pin-area">
      <MyComponent {...args} />
    </div>
  );
};

export const Basic = Template.bind({});
Basic.args = {
  …,
  "data-speccer": "pin bracket top",
};

[!IMPORTANT] Just make sure MyComponent passed down the attributes to the DOM element

Features

Element spacing

Image of the spacing feature

Use the following attribute to display element padding and margin:

<div data-speccer="spacing [padding|margin] [bound]" class="…"></div>

This will display the element and all of it's children padding and margin, unless you specify padding and margin

Image of the spacing feature in dark mode

Bound spacing

spacing

This option binds the speccer elements to the bounds of the element container.

<div data-speccer="spacing bound" class="…"></div>

Element dimensions

Image of the measure feature Image of the measure feature

Display dimensions with:

<div
  data-speccer="measure [height left|right] | [width top|bottom]"
  class="…"
></div>

Where height and width comes with placement flags. Default for height is left, default for width is top.

Image of the measure feature

Slim measure

Image of slim option for measure

Use a slim style:

<div data-speccer="measure slim height left" class="…"></div>

This will give a slimmer look and feel.

Subtle slim measure

Use a subtle style for the slim option, uses a dashed line instead of a solid line:

<div data-speccer="measure slim height left subtle" class="…"></div>

This will give a dashed border.

Pin element to annotate or highlight the anatomy

Image of speccer

In your component examples, use the following attribute. Remember to use the data-speccer="pin-area"-attribute on a parent element to scope the marking.

<div data-speccer="pin-area">
  <div
    data-speccer="pin [bracket [curly] |enclose] [left|right|top|bottom]"
    class="…"
  ></div>
</div>

This will place a pin to the outline of the element. Default is top.

Default

Image of speccer

<div data-speccer="pin-area">
  <div data-speccer="pin" class="…"></div>
</div>

Bracket

<div data-speccer="pin-area">
  <div data-speccer="pin bracket" class="…"></div>
</div>

Enclose

Image of speccer

<div data-speccer="pin-area">
  <div data-speccer="pin enclose" class="…"></div>
</div>
Subtle enclose

Image of speccer

<div data-speccer="pin-area">
  <div data-speccer="pin enclose" class="…"></div>
</div>

Align with parent container

Screenshot of the dissection/anatomy feature where the pins are aligned with the parent container

You can also align the pins to the parent container.

<div data-speccer="pin-area">
  <div data-speccer="pin parent [left|right|top|bottom]" class="…"></div>
</div>

[!NOTE] Only works with pin [left|right|top|bottom], and not with enclose, bracket or curly!

The lines from the element to the pin is drawn with a svg path and circle, so remember to add the following svg into your document:

<svg
  class="ph-speccer"
  viewBox="0 0"
  id="ph-speccer-svg"
  xmlns="http://www.w3.org/2000/svg"
>
  <path
    class="ph-speccer path original"
    id="ph-speccer-path"
    fill="none"
    stroke-width="1"
    stroke="currentColor"
  />
</svg>

Screenshot of the dissection/anatomy feature where the pins are aligned with the parent container

Pin with text

Image of text pin option

If you want text-in-place pinning feature, instead of referencing the pins, you can use the text feature:

<input
  type="text"data-speccer="pin left text"
  data-speccer-title="Static text"
  data-speccer-description="Document size [xx] by [yy][units]"
  …
/>

Custom literals

Image of japanese literals instead of latin characters

You can use custom literals by assigned a global variable with the literals you want:

window.SPECCER_LITERALS = [
  'あ',
  'い',
  'う',
  'え',
  'お',
  'か',
  'き',
  'く',
  …
];

Or with a data attribute on the data-speccer="pin-area"-element:

<div data-speccer="pin-area" data-speccer-literals="ऄ|अआइईउऊऋऌऍऎएऐऑऒओऔकखगघङच"></div>

[!TIP] Try it out with emoticons!

window.SPECCER_LITERALS = [
  '🥰',
  …
];

Subtle anatomy

Image of subtle option for anatomy

You can also give a more subtle touch to the anatomy elements.

<div data-speccer="pin-area">
  <div data-speccer="pin top subtle" class="…"></div>
</div>

This will give a dashed border, and a more subtle pin style.

Curly brackets

You can use curly brackets with the curly tag in data-speccer along side pin bracket to provide a more sleek style.

Image of curly option for anatomy

[!NOTE] Only works with pin bracket

The curly brackets are made with SVG paths, and it is required to have the following snippet on your page for it to render:

<svg
  class="ph-speccer"
  viewBox="0 0"
  id="ph-speccer-svg"
  xmlns="http://www.w3.org/2000/svg"
>
  <path
    class="ph-speccer path original"
    id="ph-speccer-path"
    fill="none"
    stroke-width="1"
    stroke="currentColor"
  />
</svg>

Pin programmatically

from v9.5 you can utilize the pin feature to annotate or highlight the anatomy of an element programmatically. Here is an example with a click event.

Kazam_screencast_00002.webm

Element typography

Image of typography speccer

Display typography details:

<p data-speccer="typography [left|right|top|bottom]" class="…">Some text</p>

This will place a box to display typography information. Default is left.

[!NOTE] > getComputedStyles are used to get the computed values, so for example, a line-height set to 1.5 will be presented in pixels, like 96px if the font-size is set to 64px.

Syntax highlighting for typography

If you want to produce a box that uses pre and code tags with support for syntax highlighting (PrismJS compatible), add syntax to the data-speccer="typography" attribute.

<p data-speccer="typography syntax right" class="…">Some text</p>

You can then override the colors, based on these variables:

.ph-speccer.speccer.typography.syntax {
  --ph-speccer-color-code-color-1: #737373;
  --ph-speccer-color-code-color-2: #ff3aa8;
  --ph-speccer-color-code-color-3: #38383d;
  --ph-speccer-color-code-color-4: #ff3aa8;
  --ph-speccer-color-code-color-5: #ff3aa8;
  --ph-speccer-color-code-color-6: #0074e8;
  --ph-speccer-color-code-color-7: #000000;
  --ph-speccer-color-code-color-8: #cd0404;
}

Here is an example with these colors and overrides:

.ph-speccer.speccer.typography.syntax {
  color: #8c9b9b;
  background-color: #262831;
  border-radius: 0.375rem;
  font-size: 12px;
  line-height: 1.5;
  border: none;
  --ph-speccer-color-code-color-1: #859ba3;
  --ph-speccer-color-code-color-2: #c79500;
  --ph-speccer-color-code-color-3: #2caaa0;
  --ph-speccer-color-code-color-4: #469edd;
  --ph-speccer-color-code-color-5: #8c9b9b;
  --ph-speccer-color-code-color-6: #e4e4e7;
  --ph-speccer-color-code-color-7: #262831;
  --ph-speccer-color-code-color-8: #ff6666;
}

Screenshot of typography with different syntax theme

Grid spacing

Screenshot of grid feature

This will highlight the grid spacing in a display: grid; element.

In your component examples, use the following attribute on your grid container.

<div data-speccer="grid" …></div>

[!TIP] If you only want to display rows or columns, use this syntax (default is both with grid only):

<div data-speccer="grid [rows|columns]" …></div>

Screenshot of grid feature

Mark elements

Screenshot of marked elements

This will mark the given elements.

In your component examples, use the following attribute.

<div data-speccer="mark" …></div>

A11y notation

With SPECCER, you can also display accessibility notation, like Accessibility Bluelines or A11y Annotation Kit:

Prior art: Jeremy Elder and Stephanie Hagadorn

Tab stops

Screenshot of speccer a11y tab stops in use

If you want to display tab stops, append data-speccer="a11y tabstops" as an attribute to the container you want to display the tab stops in.

Landmarks and regions

Screenshot of speccer a11y landmarks in use

If you want to display landmarks and regions, append data-speccer="a11y landmark" as an attribute to the container you want to display the landmarks and regions in.

Headings

Screenshot of speccer a11y headings in use

If you want to display headings, append data-speccer="a11y headings" as an attribute to the container you want to display the headings in.

Autocomplete

Screenshot of speccer a11y autocomplete in use

If you want to display autocomplete, append data-speccer="a11y autocomplete" as an attribute to the container you want to display the autocomplete in.

Keys and shortcut

Screenshot of speccer a11y shortcuts in use

If you want to display the shortcut with keys used for elements, use data-speccer="a11y shortcut" and data-speccer-a11y-shortcut="<shortcut>" on the element that uses this shortcut:

<button
  type="button"
  data-speccer="a11y shortcut"
  data-speccer-a11y-shortcut="ctrl + s"
>
  Save
</button>

Customization

Screenshot of speccer in a dark mode example

Although the styling works nicely with dark mode, you can use the provided CSS variables to customize the look and feel. If more control is needed, you can use CSS overrides :)

.ph-speccer.speccer {
  --ph-speccer-color-artificialStrawberry: #ff3aa8;
  --ph-speccer-color-venusSlipperOrchid: #db6fff;
  --ph-speccer-color-superBanana: #fff76f;
  --ph-speccer-color-white: #ffffff;
  --ph-speccer-color-carbon: #333333;
  --ph-speccer-color-red: #ff0000;
  --ph-speccer-color-niuZaiSeDenim: #0074e8;
  --ph-speccer-color-beautifulBlue: #1868b2;
  --ph-speccer-color-fuchsiaBlue: #7e60c5;
  --ph-speccer-base-color: var(--ph-speccer-color-artificialStrawberry);
  --ph-speccer-spacing-color: var(--ph-speccer-base-color);
  --ph-speccer-spacing-padding-color: var(--ph-speccer-color-carbon);
  --ph-speccer-spacing-padding-color-background: rgb(
    from var(--ph-speccer-color-venusSlipperOrchid) r g b /
      var(--ph-speccer-opacity-40)
  );
  --ph-speccer-spacing-margin-color: var(--ph-speccer-color-red);
  --ph-speccer-spacing-margin-color-background: rgb(
    from var(--ph-speccer-color-superBanana) r g b /
      var(--ph-speccer-opacity-40)
  );
  --ph-speccer-spacing-line-width: var(--ph-speccer-line-width);
  --ph-speccer-typography-background-color: var(--ph-speccer-color-white);
  --ph-speccer-typography-color-property: var(--ph-speccer-color-niuZaiSeDenim);
  --ph-speccer-typography-color-text: var(--ph-speccer-base-color);
  --ph-speccer-typography-color-value: var(--ph-speccer-base-color);
  --ph-speccer-mark-background-color: rgb(
    from var(--ph-speccer-base-color) r g b / var(--ph-speccer-opacity-20)
  );
  --ph-speccer-mark-border-color: var(--ph-speccer-base-color);
  --ph-speccer-mark-border-width: 1.5px;
  --ph-speccer-mark-border-style: solid;
  --ph-speccer-measure-color: var(--ph-speccer-color-red);
  --ph-speccer-measure-line-width: 1.5px;
  --ph-speccer-measure-border-style: dotted;
  --ph-speccer-measure-size: 8px;
  --ph-speccer-a11y-color-background: var(--ph-speccer-color-beautifulBlue);
  --ph-speccer-a11y-landmark-color-background: var(
    --ph-speccer-color-fuchsiaBlue
  );
  --ph-speccer-color-text-light: var(--ph-speccer-color-white);
  --ph-speccer-color-text-dark: var(--ph-speccer-color-carbon);
  --ph-speccer-pin-color: var(--ph-speccer-base-color);
  --ph-speccer-pin-size: 24px;
  --ph-speccer-pin-space: 48px;
  --ph-speccer-line-height: 12px;
  --ph-speccer-line-width: 1.5px;
  --ph-speccer-line-width-negative: -1.5px;
  --ph-speccer-opacity-20: 0.2;
  --ph-speccer-opacity-40: 0.4;
  --ph-speccer-font-family:
    'Menlo for Powerline', 'Menlo Regular for Powerline', 'DejaVu Sans Mono',
    Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
  --ph-speccer-font-size: 12px;
  --ph-speccer-transition-default: all 2s cubic-bezier(0.4, 0, 0.2, 1);
}

API

Full API documentation is available here.

Development

// Build
$ npm run build
// Run dev
$ npm run dev
// Test
$ npm test

Used by

if insurance logo 24seven office logo

Contributing

Want to contribute? Please read the CONTRIBUTING.md and CODE_OF_CONDUCT.md

License

This project is licensed under the MIT License - see the LICENSE file for details.

Changelog

See the CHANGELOG.md for details on the latest updates.

FAQ

See the discussions for an FAQ or to ask questions if no answer is given.

I'm an Open Source evangelist, creating stuff that does not exist yet to help get rid of secondary activities and to enhance systems already in place, be it documentation or web sites.

The sponsorship is an unique opportunity to alleviate more hours for me to maintain my projects, create new ones and contribute to the large community we're all part of :)

Support me on GitHub Sponsors.

Speccer banner, with logo and slogan: A zero dependency package to annotate or highlight elements

p.s. Ukraine is still under brutal Russian invasion. A lot of Ukrainian people are hurt, without shelter and need help. You can help in various ways, for instance, directly helping refugees, spreading awareness, putting pressure on your local government or companies. You can also support Ukraine by donating e.g. to Red Cross, Ukraine humanitarian organisation or donate Ambulances for Ukraine.

changelog

Changelog

11.2.30 (2025-06-23)

Bug

  • 🐛 No need to remove class (bf66005)

11.2.29 (2025-06-20)

Tasks

Documentation

  • ✏️ Add documentation about the react hook method (d5642e1)

11.2.28 (2025-06-17)

Tasks

  • 🤖 bump @types/node in the major-updates group (e795fa4)

11.2.27 (2025-06-17)

Tasks

  • 🤖 bump the minor-and-patch group with 6 updates (c33d8ef)

11.2.26 (2025-06-10)

Tasks

  • 🤖 bump the minor-and-patch group with 3 updates (48bc3c5)

11.2.25 (2025-06-03)

Tasks

  • 🤖 bump the minor-and-patch group with 7 updates (62743a5)

11.2.24 (2025-05-27)

Tasks

  • 🤖 bump the minor-and-patch group with 6 updates (bc0fae6)

11.2.23 (2025-05-20)

Tasks

  • 🤖 bump the minor-and-patch group with 3 updates (7983442)

11.2.22 (2025-05-13)

Tasks

  • 🤖 bump the minor-and-patch group with 5 updates (0d86ff1)

Bug

  • 🐛 Stringy labels for PR size app (e81c810)

Refactoring

  • 💡 Remove default labels from dependabot (212a2f3)

11.2.21 (2025-05-06)

Tasks

  • 🤖 Use new package for eslint config (d1f5d17)

11.2.20 (2025-05-06)

Tasks

  • 🤖 bump the minor-and-patch group with 5 updates (71d823b)
  • 🤖 Disable rules for markdown files (2505523)

11.2.19 (2025-05-02)

Tasks

  • 🤖 Use external dep for eslintconfig (a4e029f)

Documentation

  • ✏️ Update used by section (c97274c)

11.2.18 (2025-04-29)

Tasks

  • 🤖 bump typedoc-plugin-remark in the major-updates group (e87bb96)

11.2.17 (2025-04-29)

Tasks

  • 🤖 bump the minor-and-patch group with 5 updates (b286d16)

11.2.16 (2025-04-22)

Tasks

  • 🤖 bump the major-updates group with 3 updates (dae352d)

11.2.15 (2025-04-22)

Tasks

  • 🤖 bump the minor-and-patch group with 7 updates (70e9f19)

11.2.14 (2025-04-15)

Tasks

  • 🤖 bump the minor-and-patch group across 1 directory with 17 updates (9fb5191)

11.2.13 (2025-03-06)

Tasks

  • 🤖 bump the major-updates group with 3 updates (c999998)

11.2.12 (2025-03-06)

Tasks

  • 🤖 bump the minor-and-patch group with 11 updates (f3543b9)

11.2.11 (2025-02-26)

Tasks

  • 🤖 Add @eslint/markdown (18ab3bd)
  • 🤖 Make sure we can format markdown files on save (69a2130)

Documentation

Bug

  • 🐛 Use correct language code in dev files (52eacb8)

11.2.10 (2025-02-21)

Tasks

  • 🤖 Add .markdownlint.json for config (14a1847)
  • 🤖 Add more keywords (f185a44)
  • 🤖 Add prettier to lint and format (3e62c60)
  • 🤖 Remove .stylintrc, no longer needed (9da87ac)
  • 🤖 Remove map files from files in package.json (dc69f38)
  • 🤖 test prettier (2f60d91)
  • 🤖 Update deps (0e80a79)

Documentation

  • ✏️ Add missing alt text for if logo (098684b)

Refactoring

  • 💡 Remove sourcemaps, update banner and rename config (624e13c)
  • 💡 Split out interface (f91b904)

11.2.9 (2025-02-18)

Tasks

  • 🤖 bump the minor-and-patch group with 3 updates (f414557)

11.2.8 (2025-02-17)

Tasks

  • 🤖 Add back prettier (2aa57bc)
  • 🤖 Add empty .eslintrc file to make unusedModules run (61c0abe)
  • 🤖 reinstall (0e54766)
  • 🤖 reinstall after upgrading engines (480a5c6)

Documentation

  • ✏️ Regenerate documentation (1fbe689)

Refactoring

  • 💡 Move get-options.ts into separate folder (2bd8ed8)
  • 💡 Move out function to get max height of document (b738b87)
  • 💡 Use dot notation (92b288c)
  • 💡 Use proper types (27d2964)

11.2.7 (2025-02-11)

Tasks

  • 🤖 bump the minor-and-patch group with 3 updates (96e48b8)

11.2.6 (2025-02-10)

11.2.5 (2025-02-10)

Tasks

  • 🤖 Upgrade ESLint to v9, remove Prettier, not required (a49b5c5), closes #308

11.2.4 (2025-01-29)

Tasks

  • 🤖 bump the major-updates group across 1 directory with 8 updates (91adcb5)
  • 🤖 reinstall deps (dfcbf63)

Documentation

  • ✏️ Regenerate documentation (b2417b7)

11.2.3 (2025-01-29)

Tasks

  • 🤖 bump the minor-and-patch group with 13 updates (df9c81c)

11.2.2 (2024-11-21)

Tasks

  • 🤖 Reduce size of images, and make screenshots larger (d477a2f)

11.2.1 (2024-11-21)

Documentation

  • ✏️ Update screenshots (dc4394f)

11.2.0 (2024-11-21)

Tasks

  • 🤖 Upate dev file for a11y (6ab6bc9)
  • 🤖 Update after merge from main (31400dc)

Feature

  • 🎸 Add and update a11y features (29c70ba)

Bug

  • 🐛 Use correct prefix for import (e142ffb)
  • 🐛 Use given content to proper contain numbers (5472419)

Refactoring

  • 💡 Adjust styling for tabstops (d14f3c2)

11.1.6 (2024-11-19)

Tasks

  • 🤖 tslint is deprecated, built into eslint since 2019 (3ed5108)
  • 🤖 Update license year (ea695ed)

Documentation

  • ✏️ Upate README.md with correct logo for if (4e7f972)

11.1.5 (2024-11-19)

Tasks

  • 🤖 bump the minor-and-patch group with 3 updates (c1f63af)

11.1.4 (2024-11-18)

Bug

  • 🐛 Make sure spacing is including children again (749e1b1)

11.1.3 (2024-11-18)

Tasks

  • 🤖 bump rollup in the npm_and_yarn group across 1 directory (d999fe5)

11.1.2 (2024-11-15)

Tasks

  • 🤖 reinstall (4856392)
  • 🤖 Update node engine and reinstall (c311d8f)
  • 🤖 Use correct node version (ef1c06f)

Documentation

  • ✏️ Add missing "Used by" chapter (5269b3b)
  • ✏️ Add words about annotation (3207bf7)

Bug

  • 🐛 Use correct prefix (d1b0e55)

Performance change

  • ⚡️ Improve reflow issues (14419ff)

11.1.1 (2024-09-08)

Tasks

  • 🤖 bump the minor-and-patch group with 6 updates (1b29699)

11.1.0 (2024-08-30)

Tasks

  • 🤖 Update SECURITY.md (884ac79)

Documentation

  • ✏️ Regenerate API documentation (b34036f)
  • ✏️ Update screenshots and add more feature documentation (095e9a1)
  • ✏️ use instead of ... (3869cf0)

Feature

  • 🎸 Add bound option to the spacing feature (65e7314)
  • 🎸 Add function to remove given speccer elements (1078ca4)
  • 🎸 Add missing stylesheet to bound option for spacing (81bdfda)
  • 🎸 Add possibility to pass options programatically (dd5a49e)

Bug

  • 🐛 Add missing features to lazy loading (f97802e)

Performance change

  • ⚡️ Return early if the element is hidden (b09cecd)
  • ⚡️ Use waitForFrame just in case (70ca641)

Refactoring

  • 💡 Add missing types and refactor function (470a77b)
  • 💡 Make position function return styles (cf875f4)
  • 💡 Make sure we set a relation id to target elements (b16054d)
  • 💡 Rename function, and move it to correct location (79f532c)

11.0.0 (2024-08-28)

⚠ BREAKING CHANGES

  • 🧨 Have changed the API to accept an option object instead of a string. Please check the documentation.
  • 🧨 While setting a new default feature seems appropriate, it does not come without consequence. This is a breaking change, since the default of the API has changed. Please use the slim version if you want that instead of the new version.
  • 🧨 Have changed the API to accept an option object instead of a string. Please check the documentation.

Tasks

Documentation

  • ✏️ Regenerate API documentation (366891b)
  • ✏️ Regenerate API documentation (065a3f6)
  • ✏️ Update README.md (367f4b8)
  • ✏️ Update and correct documentation (49e3a3b)
  • ✏️ Update and correct documentation (288bdcf)
  • ✏️ Update screenshots (e769793), closes #233
  • ✏️ Update screenshots (152e9d5), closes #233
  • ✏️ Update section with lower heading level (fbb77df)
  • ✏️ Update section with lower heading level (8ec137e)

Feature

  • 🎸 Add isSlimArea to help with the old measure feat (401fc31)
  • 🎸 Add isSlimArea to help with the old measure feat (dd8e13b)
  • 🎸 Add feature to pin text elements (601f081), closes #258
  • 🎸 Add feature to pin text elements (46f88f8), closes #258
  • 🎸 Add new default measure feature, keep old as slim (6ca32df)
  • 🎸 Add new default measure feature, keep old as slim. (7c74c5e), closes #124
  • 🎸 Make it possible to add literals via attribute (39bb43f)
  • 🎸 Make it possible to add literals via attribute (a7d863d)

Bug

  • 🐛 Add missing landmark, form (c5a30f9)
  • 🐛 Add missing landmark, form (a8633a2)
  • 🐛 Add missing style overrides (0e4e318)
  • 🐛 Add missing style overrides (bcfce82)
  • 🐛 Use correct y value with scrollTop (bd77583)
  • 🐛 Use correct y value with scrollTop (dfeff17)
  • 🐛 Use correct variable for height calculation (8e37555)
  • 🐛 Use correct variable for height calculation (d31fbba)

Performance change

  • ⚡️ Use forEach instead of for...of for speedier render (c3ef814)
  • ⚡️ Use forEach instead of for...of for speedier render (6c3dda3)

Refactoring

  • 💡 Adjust positioning of tabstop (59e8b27)
  • 💡 Adjust positioning of tabstop (2d53f9a)
  • 💡 Improve spacing feature (416c378)
  • 💡 Improve spacing feature (95e7bae)
  • 💡 Move out createA11yElement function (d108e4c)
  • 💡 Move out createA11yElement function (8ba8591)
  • 💡 Update values for --ph-speccer-line-width (404f11c)
  • 💡 Update values for --ph-speccer-line-width (8fe180a)
  • 💡 Update values for mark (78b0432)
  • 💡 Update values for mark (721221d)
  • 💡 Use options object instead of area strings (2b8476b)
  • 💡 Use options object instead of area strings (3560dda)

10.1.0 (2024-08-22)

Documentation

  • ✏️ Add documentation about new feature for grid (7769d87)
  • ✏️ Add documentation about new feature for grid (ce5d382)
  • ✏️ Regenerate documentation (3075e97)
  • ✏️ Regenerate documentation (6e1fe63)

Feature

  • 🎸 Add feature to grid where you can view row gaps (ba9398e), closes #255
  • 🎸 Add feature to grid where you can view row gas (97488f3), closes #255

10.0.8 (2024-08-20)

Tasks

  • 🤖 bump the minor-and-patch group with 3 updates (3ef4778)

10.0.7 (2024-08-20)

Tasks

  • 🤖 bump typedoc from 0.26.5 to 0.26.6 (e85ec1a)

10.0.6 (2024-08-20)

Tasks

  • 🤖 Update dependabot.yml (c59909e)

Bug

10.0.5 (2024-08-20)

Documentation

  • ✏️ Add missing typedoc plugin for mdn links (0f5b76e)
  • ✏️ Give correct order of curly feature in examples (29e8026)
  • ✏️ Regenerate API documentation (34cc5e9)
  • ✏️ Use uniform layout for name (d4c14e0)

10.0.4 (2024-08-20)

Tasks

  • 🤖 bump typedoc-plugin-remark from 1.0.2 to 1.0.3 (0a755d2)

10.0.3 (2024-08-20)

Tasks

  • 🤖 bump typedoc-plugin-mdn-links from 3.2.8 to 3.2.9 (2faa747)

10.0.2 (2024-08-19)

Documentation

  • ✏️ Update README.md (0ef4046)

10.0.1 (2024-08-19)

Tasks

  • 🤖 Add dev file for demo (09793e6)
  • 🤖 Update demo with correct setup (7b563cb)

Bug

  • 🐛 Spacing does not have any areas, remove the check (9687cd8)
  • 🐛 Use correct top value (5db7ac0)
  • 🐛 Use correct selector (5aa5e44)
  • 🐛 Use correct variable name (5ca11fa)

10.0.0 (2024-08-19)

⚠ BREAKING CHANGES

  • 🧨 The API has changed! Please refer to the README.md and api documentation for this! You should migrate easily to the current version by search and replace.
  • 🧨 Placements of the stylus files has now changed!
  • The names of some CSS Variables have been changed. Please update your styling and overrides to reflect this!

Tasks

  • 🤖 Regenerate documentation (6b04256)
  • 🤖 Remove cobertura.xml, I don't know why it's there (a432f25)
  • 🤖 Update new css variable references (7eeb0e4)

Documentation

  • ✏️ Add notes about donation for current causes (34aeb83)
  • ✏️ Fix changelog link in README.md (6cb956b)
  • ✏️ Improve README.md (bfac2e5)
  • ✏️ Rearrange some chapters in README.md (5385fb8)
  • ✏️ Rearrange start of README.md (b5c07c3)
  • ✏️ Update SECURITY.md (3b8361e)

Bug

  • 🐛 Use correct left and top position for measure (87b120a)
  • 🐛 Use css variable with base color fallback for svg els (38d1bea)

Refactoring

  • 💡 Move styles to respective feature, and split out (ac72215)
  • 💡 Rename files and functions to better reflect what (7e19c66), closes #225
  • 💡 Untangle some styles, split out some files (642ce54), closes #29

9.6.2 (2024-08-16)

Tasks

Documentation

  • ✏️ Add build status badge (c39d35e)

Bug

  • 🐛 Fix formatting issues with styling (4964e3e)
  • 🐛 Make sure stylus can process color functions (4232894)

Refactoring

  • 💡 Remove stylus variables (0abfba1)
  • 💡 Use putout to format code (67a8209)

9.6.1 (2024-08-15)

Tasks

  • 🤖 Rename triage label workflow (f323e3e)
  • 🤖 Use custom label for build failed action (c3ba88b), closes #235

9.6.0 (2024-08-15)

Documentation

  • ✏️ Regenerate documentation (b21daa6)
  • ✏️ Regenerate documentation (4c2fcc3)
  • ✏️ Update README.md (5c32f08)

Feature

  • 🎸 Add feature to align pins to parent container (3562bb2), closes #8
  • 🎸 Polish the feature, and add dev examples (02fc6f4), closes #8

Bug

  • 🐛 Trim whitespace and remove empty strings (ee9dbab)
  • 🐛 Use correct height for page (d8f9319)

9.5.6 (2024-08-14)

Documentation

9.5.5 (2024-08-14)

Tasks

  • 🤖 bump typescript from 5.4.5 to 5.5.4 (2abe4f4)

9.5.4 (2024-08-14)

Documentation

  • ✏️ Add custom plugin for typedoc, to ensure header/footer (72ab7e7)
  • ✏️ Prefer modules over members, reducing files (b340bf5)
  • ✏️ Regenerate documentation (5769efc)

9.5.3 (2024-08-14)

Tasks

  • 🤖 Add config file for typedoc (47d0d58)

Documentation

  • ✏️ Add more documentation (e967303)

9.5.2 (2024-08-13)

Tasks

Documentation

  • ✏️ Add and update banners in README.md (6e37553)

9.5.1 (2024-08-13)

Documentation

9.5.0 (2024-08-13)

Feature

  • 🎸 Add feature to activate dissect programmatically (7a03069), closes #217

9.4.1 (2024-08-13)

Tasks

  • 🤖 bump typedoc from 0.25.13 to 0.26.5 (90a7a56)
  • 🤖 Update dev file for dissect/anatomy (f6f9b92)

Documentation

  • ✏️ Update README.md (1c7e3dd)

Bug

  • 🐛 Use correct background-color for subtle feature (cd976b6)
  • 🐛 Use correct versions of typedoc plugins after upgrade (75add9f)

Refactoring

  • 💡 Extract functions into separate files (e8c3fd6)

9.4.0 (2024-08-12)

Documentation

  • ✏️ Regenerate documentation (7191c3f)

Feature

  • 🎸 Add support for custom literals (01d3507), closes #215

9.3.0 (2024-08-11)

Feature

  • 🎸 Add support to use syntax highlighting for typography (25f3524), closes #212

9.2.10 (2024-08-11)

Documentation

  • ✏️ Update link to demo in README.md and update darkmode (9c84a59)

Bug

  • 🐛 Add missing CSS variable (fb41fcc)

9.2.9 (2024-08-09)

Tasks

  • 🤖 Reinstall dependencies (9f17684)

9.2.8 (2024-08-09)

Documentation

Bug

  • 🐛 Override gridTemplateRows so we can ensure height (2fdbdea)

9.2.7 (2024-08-09)

Tasks

  • 🤖 Add new keywords to package.json (746bff5)
  • 🤖 bump typescript from 5.4.5 to 5.5.4 (b89721b)

Bug

  • 🐛 Use gridTemplate instead of gridTemplateColumns (75370ef)

9.2.6 (2024-08-09)

Tasks

  • 🤖 bump rollup from 4.19.0 to 4.20.0 (73783ef)

9.2.5 (2024-08-09)

Tasks

  • 🤖 bump typedoc-plugin-mdn-links from 3.2.5 to 3.2.7 (e889205)

9.2.4 (2024-08-09)

Tasks

  • 🤖 Use correct label for bugs (dd08def)

9.2.3 (2024-08-09)

Bug

  • 🐛 Use CSS vars correctly to accommodate for transition (362d111)

9.2.2 (2024-08-09)

Bug

  • 🐛 Add missing transition property to grid feature (9b17c86)

9.2.1 (2024-08-08)

Refactoring

  • 💡 Set css var on body element (c3b1cac)

9.2.0 (2024-08-02)

Tasks

  • 🤖 Add tmp file for testing (fae0b28)
  • 🤖 Remove tmp file, not required (01562a0)

Documentation

  • ✏️ Generate documentation for the grid feature (6ab2a4e)

Feature

  • 🎸 Add feature to highlight column gaps in grid containers (2306cee), closes #198

9.1.38 (2024-07-24)

Tasks

  • 🤖 bump typescript from 5.4.5 to 5.5.4 (3284aea)

Bug

  • 🐛 reinstall packages to have a clean dir when publishing (7003cc4), closes #192

9.1.37 (2024-07-24)

Tasks

  • 🤖 bump typedoc-plugin-mdn-links from 3.1.23 to 3.2.5 (504044b)

9.1.36 (2024-07-23)

Tasks

  • 🤖 bump jsdom from 24.0.0 to 24.1.1 (8599aec)

9.1.35 (2024-07-22)

Tasks

  • 🤖 bump tslib from 2.6.2 to 2.6.3 (0c5137c)

9.1.34 (2024-07-22)

Tasks

  • 🤖 bump braces from 3.0.2 to 3.0.3 (2b0c37a)

9.1.33 (2024-07-22)

Tasks

  • 🤖 bump prettier from 3.2.5 to 3.3.3 (516a02f)

9.1.32 (2024-07-22)

Tasks

  • 🤖 bump rollup from 4.13.0 to 4.19.0 (655685e)

9.1.31 (2024-07-22)

Tasks

  • 🤖 bump putout from 35.18.0 to 35.37.1 (df47c67)

9.1.30 (2024-06-18)

Tasks

  • 🤖 bump ws from 8.16.0 to 8.17.1 (8ca62ef)
  • 🤖 remove project auto labeller, only works with classic (a25df9e)

9.1.29 (2024-06-18)

Tasks

  • 🤖 add auto labelling for projects (25c1d1d)

9.1.28 (2024-06-18)

Tasks

  • 🤖 Add triage label to opened and reopened issues (b1f1ecf)

9.1.27 (2024-06-17)

Tasks

  • 🤖 bump release-it from 17.1.1 to 17.3.0 (79aec9f)

9.1.26 (2024-06-07)

Tasks

  • 🤖 bump typedoc from 0.25.12 to 0.25.13 (87bb044)

9.1.25 (2024-06-05)

Tasks

  • 🤖 bump glob from 10.3.15 to 10.4.1 (feab1b5)

9.1.24 (2024-05-22)

Tasks

  • 🤖 bump postcss from 8.4.35 to 8.4.38 (e2fa0c5)

9.1.23 (2024-05-22)

Tasks

  • 🤖 bump tsx from 4.7.2 to 4.7.3 (3eff480)

9.1.22 (2024-05-22)

Tasks

  • 🤖 bump typedoc-plugin-mdn-links from 3.1.18 to 3.1.23 (f50923f)

9.1.21 (2024-05-22)

Tasks

  • 🤖 bump putout from 35.7.5 to 35.18.0 (1f198e4)

9.1.20 (2024-05-22)

Tasks

  • 🤖 bump glob from 10.3.10 to 10.3.15 (efb37f9)

9.1.19 (2024-05-02)

Tasks

  • 🤖 bump typescript from 5.4.3 to 5.4.5 (e3d7bc2)

9.1.18 (2024-04-23)

Tasks

  • 🤖 bump tsx from 4.7.1 to 4.7.2 (cde514c)

9.1.17 (2024-04-04)

Tasks

  • 🤖 bump quibble from 0.9.1 to 0.9.2 (2e33cfc)

9.1.16 (2024-04-02)

Tasks

  • 🤖 bump typescript from 5.4.2 to 5.4.3 (fbba524)

9.1.15 (2024-04-02)

Tasks

  • 🤖 bump cssnano from 6.1.0 to 6.1.2 (70cbebf)

9.1.14 (2024-03-19)

Tasks

  • 🤖 bump putout from 35.7.1 to 35.7.5 (9ba752e)

9.1.13 (2024-03-19)

Tasks

  • 🤖 bump rollup from 4.12.1 to 4.13.0 (eab0f05)

9.1.12 (2024-03-19)

Tasks

  • 🤖 bump typescript from 5.3.3 to 5.4.2 (ab466f9)

9.1.11 (2024-03-19)

Tasks

  • 🤖 bump typedoc-plugin-mdn-links from 3.1.17 to 3.1.18 (6d5da51)

9.1.10 (2024-03-19)

Tasks

  • 🤖 bump typedoc from 0.25.11 to 0.25.12 (f62094c)

9.1.9 (2024-03-13)

Tasks

  • 🤖 bump stylus from 0.62.0 to 0.63.0 (6f57bb5)

9.1.8 (2024-03-08)

9.1.7 (2024-03-08)

Tasks

Documentation

9.1.6 (2024-02-28)

Tasks

  • 🤖 bump cssnano from 6.0.3 to 6.0.5 (f41e732)

9.1.5 (2024-02-28)

Tasks

  • 🤖 bump typedoc from 0.25.8 to 0.25.9 (26b54bd)

9.1.4 (2024-02-28)

Tasks

  • 🤖 bump typedoc-plugin-mdn-links from 3.1.16 to 3.1.17 (9907bde)

9.1.3 (2024-02-27)

Documentation

  • ✏️ Add images to docs (e5b7cbd)

9.1.2 (2024-02-27)

Tasks

Documentation

9.1.1 (2024-02-26)

Tasks

  • 🤖 Add banner to produced js files (e9abcdc)
  • 🤖 Ignore dist and dts (2d09a42)

Documentation

  • ✏️ Update README.md with info about sponsorship (0cb49cc)

9.1.0 (2024-02-24)

Tasks

Feature

  • 🎸 Add feature for Accessibility notation (8f646a6), closes #16

Bug

  • 🐛 Adjust position for sticky elements and parents (54979b3)

Refactoring

  • 💡 Add type for styles return object (6cc7d40)

9.0.13 (2024-02-22)

Tasks

  • 🤖 bump release-it and @release-it/conventional-changelog (e8eefc5)

9.0.12 (2024-02-22)

Tasks

  • 🤖 bump cssnano from 5.1.15 to 6.0.3 (3befd3c)

9.0.11 (2024-02-22)

Bug

  • 🐛 Attempt to fix test with requestAnimationFrame (b03e257)

9.0.10 (2024-02-22)

Bug

  • 🐛 place quibble under devDependencies (4df90a0)

9.0.9 (2024-02-22)

Refactoring

  • 💡 Replace vitest with native node:test (01d3d87)

9.0.8 (2024-02-17)

Tasks

  • 🤖 roll back codecov action to v3, v4 still buggy (21eca7b)

9.0.7 (2024-02-17)

Tasks

  • 🤖 Upgrade codecov action (eee1d76)

9.0.6 (2024-02-17)

Tasks

  • 🤖 Upgrade github actions versions (116943a)

Documentation

  • ✏️ Update lazy loading example in README.md (b8ae2b9)

9.0.5 (2024-02-17)

Tasks

  • 🤖 exclude vitest.config.ts (fcd9237)
  • 🤖 fix deps (fc63f35)
  • 🤖 upgrade rollup to v4 and typescript to v5 (b13fa4f)
  • 🤖 use vitest instead of jest (2f2881b)

Documentation

  • ✏️ update SECURITY.md (16d46a0)

Bug

  • 🐛 Add dom.iterable (4d4029a)
  • 🐛 upgraded typedoc, regenerated api docs (bd55243)
  • 🐛 use moduleResolution: 'bundler' for rollup@4 (db2fd03)

Refactoring

  • 💡 remove reference to codepen, no longer needed (b322504)

9.0.4 (2024-02-16)

Tasks

Bug

  • 🐛 Add test for typography position util (39f3ae4)
  • 🐛 Revert for..of to .forEach to solve racing condition (55c2cde), closes #106

9.0.3 (2024-02-13)

9.0.2 (2024-02-13)

Documentation

  • ✏️ Update links to dist (6e4987b)

9.0.1 (2024-02-13)

Tasks

9.0.0 (2024-02-13)

⚠ BREAKING CHANGES

  • 🧨 Produced files are now moved to dist, this breaks anyone references the built files with the script-tag. Old URL was */speccer*, new is */dist/speccer*

Tasks

  • 🤖 Add .github paths to check (d41facc)
  • 🤖 bump @rollup/plugin-node-resolve from 11.2.1 to 15.2.3 (ea35d3d)
  • 🤖 Publish on more path changes (a04e2ee)
  • 🤖 Update github actions (f10b6e8)

Bug

Refactoring

  • 💡 Add built files to dist and ignore it (6591374), closes #19

8.0.6 (2024-02-13)

Tasks

  • ✏️ Create SECURITY.md (5910ecb)
  • 🤖 bump @adobe/css-tools and stylus (0f4398b)
  • 🤖 bump @release-it/conventional-changelog from 7.0.1 to 7.0.2 (833edb7)
  • 🤖 bump @typescript-eslint/parser from 5.38.1 to 5.62.0 (043c498)
  • 🤖 bump rollup-plugin-typescript2 from 0.35.0 to 0.36.0 (c5df799)
  • 🤖 bump typedoc-plugin-markdown from 3.16.0 to 3.17.1 (8b8d9c6)
  • 🤖 bump typedoc-plugin-rename-defaults from 0.6.6 to 0.6.7 (06aea25)
  • 🤖 bump typescript from 4.8.4 to 4.9.5 (24fc76a)
  • 🤖 reinstall (e335812)
  • 🤖 Update eslint (6763306)

Documentation

  • ✏️ Add CONTRIBUTING.md (e28e791)
  • ✏️ Create CODE_OF_CONDUCT.md (ddde767)

8.0.5 (2023-10-18)

Tasks

Bug

  • 🐛 Add margin and padding reset for all speccer elements (85e5371)
  • 🐛 Add missing xy coord function (b697203)
  • 🐛 Adjust for scroll position for curly brackets (a986494)
  • 🐛 Fix curly brackets (430dc4a)
  • 🐛 Set correct height on svg canvas (11c00cb)
  • 🐛 Set missing id (242f91d)

8.0.4 (2023-10-18)

Bug

  • 🐛 Add back missing methods (8bf104e)
  • 🐛 Correctly check for undefined values (b7d7b0b)
  • 🐛 Fix issues with jest/ts (a4395a8)
  • 🐛 Use correct import path (ad6f717)

Refactoring

8.0.3 (2023-10-17)

Bug

  • 🐛 Only remove scoped elements (6b1bb8a)
  • 🐛 Set max-width on typography box (166b5be)

8.0.2 (2023-10-17)

Tasks

  • 🤖 bump postcss from 8.4.17 to 8.4.31 (fab645f)

Bug

  • 🐛 Onlu publish on actual change (ba07d7c)
  • 🐛 Use better css scope (b187ecf)

8.0.1 (2023-10-17)

Tasks

  • 🤖 bump eslint-plugin-import from 2.26.0 to 2.28.1 (5e7d8eb)

8.0.0 (2023-10-17)

⚠ BREAKING CHANGES

  • Renamed src/index.ts to src/main.ts

Tasks

  • 🤖 Add correct types of commits to preset (5fd6e4a)
  • 🤖 Add github actions (1942f8d), closes #30
  • 🤖 Add more logos (9f452eb)
  • 🤖 Adjust tsconfig (7d1c89e)
  • 🤖 build (28a21f2)
  • 🤖 bump rollup-plugin-typescript2 from 0.31.2 to 0.35.0 (9412bec)
  • 🤖 bump stylus from 0.56.0 to 0.60.0 (0351289)
  • 🤖 bump tough-cookie from 4.1.2 to 4.1.3 (e6438c0)
  • 🤖 Do not hide chores (1794e18)
  • 🤖 Fix changelog header (0f3a896)
  • 🤖 release v7.0.0 (d4753b5)
  • 🤖 Remove old index.d.ts file (b30fa69)
  • 🤖 Use release-it instead of standard-version (0e44c3d), closes #41

Documentation

  • ✏️ Add API documentation (a4598c5)
  • ✏️ Fix typo and update logo (2db1c60)
  • ✏️ Update README.md (1b1f48b), closes #39

Feature

Bug

  • 🐛 Fix release (dc7803a)
  • 🐛 Make sure we publish to npm (6a76f76), closes #45
  • 🐛 skipChecks for npm publish (0c22c31)
  • 🐛 Use correct name for *.d.ts file, update README.md (6b18d60)

Refactoring

  • 💡 Add more inline documentation and updated some (71d6809)
  • 💡 Adjust folder structure to a more meaningful way (42597fa), closes #48
  • 💡 Make sure we release on every change (ce4a627), closes #43

7.0.0 (2023-10-16)

⚠ BREAKING CHANGES

  • Renamed src/index.ts to src/main.ts

Tasks

  • 🤖 Add correct types of commits to preset (5fd6e4a)
  • 🤖 Add github actions (1942f8d), closes #30
  • 🤖 Adjust tsconfig (7d1c89e)
  • 🤖 build (28a21f2)
  • 🤖 bump rollup-plugin-typescript2 from 0.31.2 to 0.35.0 (9412bec)
  • 🤖 bump stylus from 0.56.0 to 0.60.0 (0351289)
  • 🤖 bump tough-cookie from 4.1.2 to 4.1.3 (e6438c0)
  • 🤖 Do not hide chores (1794e18)
  • 🤖 Remove old index.d.ts file (b30fa69)
  • 🤖 Use release-it instead of standard-version (0e44c3d), closes #41

Documentation

  • ✏️ Add API documentation (a4598c5)
  • ✏️ Update README.md (1b1f48b), closes #39

Feature

Bug

  • 🐛 Fix release (dc7803a)
  • 🐛 Make sure we publish to npm (6a76f76), closes #45
  • 🐛 skipChecks for npm publish (0c22c31)

Refactoring

  • 💡 Add more inline documentation and updated some (71d6809)
  • 💡 Adjust folder structure to a more meaningful way (42597fa), closes #48
  • 💡 Make sure we release on every change (ce4a627), closes #43

6.3.1 (2023-03-06)

Bug

  • use correct branch for release (b1458fd)

6.3.0 (2023-03-06)

Refactoring

  • 💡 Add docs to angle and add option to normalize (609e3c3)
  • 💡 Finish refactor of position (f838bc7)
  • 💡 Move waitFor* to separate file (7d4bae4)

Feature

  • 🎸 Add new helper constants (70d6e82)
  • 🎸 Add support to use bezier curves/svg (d457edf), closes #18
  • 🎸 Finalize SVG feature (0c9dff4), closes #18

Bug

  • 🐛 Fix bug with position and refactor (cce426a)
  • 🐛 Some issues with borders and positioning (ae3323b)

Documentation

  • ✏️ Add docs about curly brackets (4f72c2c)

6.2.5 (2023-03-01)

6.2.4 (2023-03-01)

6.2.3 (2023-03-01)

6.2.2 (2023-03-01)

Bug

  • 🐛 Add files when releasing (7364c4c)

Documentation

  • ✏️ Add documentation regarding dark mode (0b46ca7)

Refactoring

6.2.1 (2022-03-01)

6.2.0 (2022-03-01)

Bug

  • 🐛 Use correct method to dissect elements (24035bd)
  • 🐛 Use correct tags to avoid for browser activation (bf359d1)

Feature

  • 🎸 Expose browser modes (a650ef0)

6.1.0 (2022-02-28)

Feature

  • Add subtle option to measure and anatomy (43e9c8c)

6.0.5 (2022-02-24)

Bug

  • 🐛 Use correct number sequences with dissection of elements (0caacff), closes #15

6.0.4 (2022-02-24)

Refactoring

6.0.3 (2022-02-24)

Bug

6.0.2 (2022-02-24)

Bug

  • 🐛 Fix positioning bug (bbb3b80)

6.0.1 (2022-02-23)

Performance change

  • ⚡️ Reduce size of npm package (3a1615d)

6.0.0 (2022-02-23)

⚠ BREAKING CHANGES

  • 🧨 The script is now converted to TypeScript. The internal API has changed, but now the usage. I've set this as a breaking change to reflect the size of the change. There has also been some internal optimizations regarding positioning of the speccer elements

Refactoring

  • 💡 Converted to TypeScript (ab90bae)

Feature

5.0.0 (2022-02-22)

⚠ BREAKING CHANGES

  • 🧨 Speccer is not supporting older browsers any more, to cut down on maintenance. Babel is now removed, but you can still polyfill or use babel for your own needs if you import the source files instead of the build files.

Tasks

  • 🤖 Remove babel, do not support older browsers anymore (9ed11c0)

4.3.2 (2022-02-22)

Bug

  • And supply the minified version.. (8cfb69a)

4.3.1 (2022-02-22)

Bug

4.3.0 (2022-02-22)

Feature

  • 🎸 Expose API a bit more (093b465)

Documentation

  • ✏️ Move images into assets (2291b31)
  • ✏️ Update documentation (ec0807e)

4.2.1 (2022-02-22)

4.2.0 (2022-02-22)

Features

4.1.0 (2022-02-22)

Features