An open API service indexing awesome lists of open source software.

https://github.com/email-types/stylis-plugin-mso

A Stylis plugin that adds support for the `mso-` CSS vendor prefix
https://github.com/email-types/stylis-plugin-mso

Last synced: 8 months ago
JSON representation

A Stylis plugin that adds support for the `mso-` CSS vendor prefix

Awesome Lists containing this project

README

          

[emotion]: https://github.com/emotion-js/emotion
[stylis]: https://github.com/thysultan/stylis.js
[msotype]:
https://github.com/email-types/email-types/tree/master/packages/msotype

# MSO Stylis Plugin

A [Stylis][stylis] plugin that adds support for the `mso-` CSS vendor prefix. It
automatically adds the `mso-` prefix and `-alt` postfix for all Microsoft Office
alternative CSS properties (see [msotype][msotype]). It also prevents a leading
`-` from being added. So you'll get `mso-` instead of `-mso-`.

[![](https://img.shields.io/npm/v/stylis-plugin-mso?color=black&logoColor=white)](https://www.npmjs.com/package/stylis-plugin-mso)
![](https://img.shields.io/github/workflow/status/email-types/stylis-plugin-mso/Test?logo=github&color=black)
[![](https://img.shields.io/codecov/c/github/email-types/stylis-plugin-mso?logo=codecov&logoColor=white&color=black)](https://codecov.io/gh/email-types/stylis-plugin-mso)
[![](https://img.shields.io/bundlephobia/min/stylis-plugin-mso?logo=bundlephobia&color=black)](https://bundlephobia.com/result?p=stylis-plugin-mso)
[![](https://img.shields.io/bundlephobia/minzip/stylis-plugin-mso?logo=bundlephobia&color=black)](https://bundlephobia.com/result?p=stylis-plugin-mso)

Install with yarn

```sh
yarn add stylis-plugin-mso
```

Or install with npm:

```sh
npm install stylis-plugin-mso
```

## Using with Stylis

```ts
import stylis from 'stylis';
import plugin from 'stylis-plugin-mso';

stylis.use(plugin);

stylis('.foobar', `{ color: tomato; }`);
// => .foobar { mso-color-alt:tomato; color:tomato; }
```

## Using with EmotionJs

To use with [EmotionJs][emotion], you'll need to add a ``. Note
that when multiple `` are used, all of your styles will be
parsed twice. So make sure to add this at the top of your app. See more at
[@emotion/cache](https://github.com/emotion-js/emotion/tree/master/packages/cache).

```tsx
import { CacheProvider } from '@emotion/core';
import plugin from 'stylis-plugin-mso';

const cache = createCache({
stylisPlugins: [plugin],
});

const App = () => (



);
```

## Automatic Vendor Prefix

By default, the `mso-` prefix and `-alt` postfix are automatically applied to
all Microsoft Office alternative CSS properties. You can disable this by
creating an instance of the plugin and setting the `prefix` option to `false`.

```ts
import stylis from 'stylis';
import { createPlugin } from 'stylis-plugin-mso';

const plugin = createPlugin({ prefix: false });

stylis.set({ prefix: false });
stylis.use(plugin);

stylis('.foobar', `{ color: tomato; }`);
// => .foobar { color:tomato; }
```

## API

### createPlugin

```tsx
createPlugin(options?: object): StylisPlugin
```

**options**

- `prefix?: boolean`: Toggles automatic `mso` vendor prefixing. Default: `true`.