@vtmn/svelte

4.6.4 • Public • Published

@vtmn/svelte

Decathlon Design System - Vitamin Svelte components library

storybook npm version Quality Gate Status

Install package

After installing npm or yarn, you can install @vtmn/svelte with this command:

# with npm
npm i -S @vtmn/svelte

# with yarn
yarn add @vtmn/svelte

Install fonts

Roboto & Roboto Condensed fonts as described in Typography section will not be automatically loaded. Fortunately, there is a few easy ways to get started.

You can install them with FontSource:

# with npm
npm i -S @fontsource/roboto @fontsource/roboto-condensed

# with yarn
yarn add @fontsource/roboto @fontsource/roboto-condensed

Then, within your app entry file or site component, import it in:

import '@fontsource/roboto'; // Defaults to weight 400
import '@fontsource/roboto/400.css'; // Specify weight
import '@fontsource/roboto/400-italic.css'; // Specify weight and style

In order to enhance performance of your app, please read about font subsetting. FontSource explains it here.

Otherwise, you can also load them through CDN:

<link
  rel="stylesheet"
  href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&family=Roboto+Condensed:ital,wght@0,400;0,700;1,700&display=swap"
/>

Finally, you can also import them via CSS import:

@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&family=Roboto+Condensed:ital,wght@0,400;0,700;1,700&display=swap');

Usage

To use this package, you need to use the source files and compile on your side. To do so, you can start with +SvelteKit for example.

You should then preprocess the component CSS since they are imported in each corresponding component with an @import rule. There are several ways to resolve path of an @import rule, our recommended way is to use the postcss-import plugin.

For example, here is a working svelte.config.js:

import adapter from '@sveltejs/adapter-auto';
import preprocess from 'svelte-preprocess';
import atImport from 'postcss-import';

const config = {
  preprocess: preprocess({
    postcss: {
      plugins: [
        atImport({
          root: process.cwd(),
          // import should default to node_modules, then look into src
          path: [
            join(process.cwd(), 'node_modules'),
            join(process.cwd(), 'src'),
          ],
        }),
      ],
    },
  }),
  kit: {
    adapter: adapter(),
  },
};

export default config;

Then, you just need to import components you need. Example with VtmnButton:

// App.svelte
<script>
  import { VtmnButton } from '@vtmn/svelte';
</script>

<VtmnButton>Button</VtmnButton>

If you need to display icons, you will need to import @vtmn/icons icon font like this:

import '@vtmn/icons/dist/vitamix/font/vitamix.css';

Or you can also import it with a CDN like unpkg.com with this file.

Development

To know all the use cases and their associated code, check out the showcase here.

Changelog

If you want to know the different changes between versions of this package, look at the changelog here.

I have an issue, what should I do?

Please file the issue here.

Contributing

See the contributing docs.

License

Apache-2.0 © Decathlon

Package Sidebar

Install

npm i @vtmn/svelte

Weekly Downloads

15,371

Version

4.6.4

License

Apache-2.0

Unpacked Size

1.56 MB

Total Files

159

Last publish

Collaborators

  • ossdecathlon
  • lthieb05