Use Tailwind CSS
Starting from version 1.6.0
, @vue-style-components/core
provides a tw
function to insert Tailwind CSS
classes into the class
attribute of a Vue Component.
Before staring to use
Tailwind CSS
, you need to install it first. (How to install Tailwind CSS?)
Basic Usage
vue
<script setup lang="ts">
import styled, { tw } from '@vue-styled-components/core'
const StyledDiv = styled.div`
${tw`w-20 h-20 bg-red-500`}
`
</script>
<template>
<StyledDiv />
</template>
Use tailwind css conditionally
vue
<script setup lang="ts">
import styled, { tw } from '@vue-styled-components/core'
const StyledDiv = styled('div', { isRed: true })`
width: 20px;
height: 20px;
${props => props.isRed && tw`bg-red-500`}
`
</script>
<template>
<StyledDiv />
</template>
Compose Tailwind CSS
vue
<script setup lang="ts">
import styled, { tw } from '@vue-styled-components/core'
const twButton = tw`px-4 py-2 rounded-md`
const StyledSmallButton = styled.div`
width: 20px;
height: 20px;
${twButton}
`
const StyledLargeButton = styled.div`
width: 40px;
height: 20px;
${twButton}
`
</script>
<template>
<StyledSmallButton>small button</StyledSmallButton>
<StyledLargeButton>large button</StyledLargeButton>
</template>
Dynamic Tailwind CSS Classes
vue
<script setup lang="ts">
import styled, { tw } from '@vue-styled-components/core'
const color = 'red'
const StyledDiv = styled('div', { isRed: true })`
width: 20px;
height: 20px;
${tw`bg-red-500 ${`bg-${color}-500`}`}
`
</script>
<template>
<StyledDiv />
</template>