@vtmn/css-tailwind-preset
v1.1.18
Published
Decathlon Design System - Vitamin CSS Tailwind preset
Downloads
20,905
Readme
@vtmn/css-tailwind-preset
Decathlon Design System - Vitamin CSS Tailwind preset
Install package
After installing npm or yarn, you can install @vtmn/css-tailwind-preset
with this command:
# with npm
npm i -S @vtmn/css-tailwind-preset
# with yarn
yarn add @vtmn/css-tailwind-preset
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');
Install icons (optional)
If you need to display icons, you will need to install @vtmn/icons
package.
# with npm
npm i -S @vtmn/icons
# with yarn
yarn add @vtmn/icons
Then follow instructions in README of @vtmn/icons :
import '@vtmn/icons/dist/vitamix/font/vitamix.css';
Or you can also import it with a CDN like unpkg.com
with this file.
Development
If you are there, it's probably because you already use Tailwind CSS in your project. If you want to take full advantage of all its features like functions & directives by building your own classes via @apply
for example inherited from the Vitamin CSS styles, you are at the right place!
If you don't have Tailwind CSS and you are interested, you can install it by following this documentation. If not, we encourage you to simply you our @vtmn/css
package which will give you all the different Vitamin styles without the need to build them with Tailwind CSS.
In order to use our Tailwind preset, simply add this line inside your tailwind.config.js
file:
TailwindCSS v2
module.exports = {
presets: [require('@vtmn/css-tailwind-preset')],
// ...
};
TailwindCSS v3
module.exports = {
presets: [require('@vtmn/css-tailwind-preset')],
theme: {
colors: {
current: 'currentColor',
},
},
};
Then import files inside your CSS entry point:
@import 'tailwindcss/base'; /* import base CSS classes from Tailwind CSS (optional) */
@import '@vtmn/css-design-tokens/dist/index.css'; /* import Vitamin design tokens CSS classes (required) */
@import '@vtmn/css-utilities/dist/index.css'; /* import Vitamin utilities CSS classes (required) */
@import 'tailwindcss/components'; /* import components CSS classes from Tailwind CSS (optional) */
@import 'tailwindcss/utilities'; /* import utilities CSS classes from Tailwind CSS (optional) */
@import 'tailwindcss/screens'; /* import screens CSS classes from Tailwind CSS (optional) */
@import '@vtmn/css/dist/components.css'; /* import Vitamin components CSS classes (required) */
You will need a plugin to understand @import
statements. If you use PostCSS, you can use postcss-import.
For more details about Tailwind presets, see Tailwind CSS documentation about presets here.
Important: our Tailwind CSS preset has a prefix in order to avoid conflicts with existing Tailwind CSS project. So, to use our library, you will have to prefix all CSS utility classes with vtmn-
.
To know all the use cases and their associated code, check out the showcase here.
For example:
<div
class="vtmn-flex vtmn-bg-brand-digital-light-3 vtmn-rounded-lg vtmn-p-6 vtmn-mb-5"
>
<p class="vtmn-text-xl vtmn-text-center vtmn-font-semibold vtmn-text-black">
Hello
<span class="vtmn-text-brand-digital vtmn-text-2xl">World!</span>
<span role="img" aria-label="Welcome menu"> 🎉 </span>
</p>
</div>
For more details about CSS utility classes from this package, see Tailwind CSS documentation here.
Optimizing for production
To make the development experience as productive as possible, Tailwind generates thousands of utility classes for you, most of which you probably won't actually use.
When building for production, you should always use PurgeCSS to tree-shake unused styles and optimize your final build size.
For more details about this, see Tailwind CSS documentation about optimizing for production here.
Base 10 support
If your project uses the mathematical trick of basing the value of 1rem
equals 10px
, you can import files like this instead:
@import 'tailwindcss/base'; /* import base CSS classes from Tailwind CSS (optional) */
@import '@vtmn/css-design-tokens/dist/index-base10.css'; /* import Vitamin design tokens CSS classes (required) */
@import '@vtmn/css-utilities/dist/index-base10.css'; /* import Vitamin utilities CSS classes (required) */
@import 'tailwindcss/components'; /* import components CSS classes from Tailwind CSS (optional) */
@import 'tailwindcss/utilities'; /* import utilities CSS classes from Tailwind CSS (optional) */
@import 'tailwindcss/screens'; /* import screens CSS classes from Tailwind CSS (optional) */
@import '@vtmn/css/dist/components-base10.css'; /* import Vitamin components CSS classes (required) */
You will need a plugin to understand @import
statements. If you use PostCSS, you can use postcss-import.
Playground
If you want to test Vitamin Tailwind CSS utility classes, see our live playground 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
License
Apache-2.0 © Decathlon