@vtmn/svelte
Decathlon Design System - Vitamin Svelte components library
Install package
After installing npm or yarn, you can install @vtmn/svelte
with this command:
npm i -S @vtmn/svelte
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:
npm i -S @fontsource/roboto @fontsource/roboto-condensed
yarn add @fontsource/roboto @fontsource/roboto-condensed
Then, within your app entry file or site component, import it in:
import '@fontsource/roboto';
import '@fontsource/roboto/400.css';
import '@fontsource/roboto/400-italic.css';
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(),
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
:
<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