Transitions Config Module
The Transitions Config Module holds your application's default/prototypal Tailwind CSS classes for CSS transitions throughout your application.
app.vv.ts Use
You'll usually work with the Transitions Config Module after it's already been merged into VueVentus VvConfig data.
Here's what that generally looks like in practice in a real world app context:
// ./src/app.vv.ts
import { VvConfig } from '@obewds/vueventus'
import type { ConfigVv } from '@obewds/vueventus'
let appVv: ConfigVv = VvConfig
appVv.transitions.someProperty = 'some-value'
// ...
export default appVv
Import
However, if you need to import the compiled library version of the Transitions Config Module, you can use:
import { Transitions } from '@obewds/vueventus'
Transitions.durations
Type: Object
Transitions.durations Properties | Transitions.durations Prop Values |
---|---|
"1200" | "duration-1200" |
"1150" | "duration-1150" |
"1100" | "duration-1100" |
"1050" | "duration-1050" |
"1000" | "duration-1000" |
"950" | "duration-950" |
"900" | "duration-900" |
"850" | "duration-850" |
"800" | "duration-800" |
"750" | "duration-750" |
"700" | "duration-700" |
"650" | "duration-650" |
"600" | "duration-600" |
"550" | "duration-550" |
"500" | "duration-500" |
"475" | "duration-475" |
"450" | "duration-450" |
"425" | "duration-425" |
"400" | "duration-400" |
"375" | "duration-375" |
"350" | "duration-350" |
"325" | "duration-325" |
"300" | "duration-300" |
"275" | "duration-275" |
"250" | "duration-250" |
"225" | "duration-225" |
"200" | "duration-200" |
"175" | "duration-175" |
"150" | "duration-150" |
"125" | "duration-125" |
"100" | "duration-100" |
"75" | "duration-75" |
"50" | "duration-50" |
"25" | "duration-25" |
Examples
// ./src/app.vv.ts
appVv.transitions.durations = {
'1200': '',
'1150': '',
'1100': '',
'1050': '',
'1000': '',
'950': '',
'900': '',
'850': '',
'800': '',
'750': '',
'700': '',
'650': '',
'600': '',
'550': '',
'500': '',
'475': '',
'450': '',
'425': '',
'400': '',
'375': '',
'350': '',
'325': '',
'300': '',
'275': '',
'250': '',
'225': '',
'200': '',
'175': '',
'150': '',
'125': '',
'100': '',
'75': '',
'50': '',
'25': '',
}
// ./src/app.vv.ts
appVv.transitions.durations['1200'] = ''
appVv.transitions.durations['1150'] = ''
appVv.transitions.durations['1100'] = ''
appVv.transitions.durations['1050'] = ''
appVv.transitions.durations['1000'] = ''
appVv.transitions.durations['950'] = ''
appVv.transitions.durations['900'] = ''
appVv.transitions.durations['850'] = ''
appVv.transitions.durations['800'] = ''
appVv.transitions.durations['750'] = ''
appVv.transitions.durations['700'] = ''
appVv.transitions.durations['650'] = ''
appVv.transitions.durations['600'] = ''
appVv.transitions.durations['550'] = ''
appVv.transitions.durations['500'] = ''
appVv.transitions.durations['475'] = ''
appVv.transitions.durations['450'] = ''
appVv.transitions.durations['425'] = ''
appVv.transitions.durations['400'] = ''
appVv.transitions.durations['375'] = ''
appVv.transitions.durations['350'] = ''
appVv.transitions.durations['325'] = ''
appVv.transitions.durations['300'] = ''
appVv.transitions.durations['275'] = ''
appVv.transitions.durations['250'] = ''
appVv.transitions.durations['225'] = ''
appVv.transitions.durations['200'] = ''
appVv.transitions.durations['175'] = ''
appVv.transitions.durations['150'] = ''
appVv.transitions.durations['125'] = ''
appVv.transitions.durations['100'] = ''
appVv.transitions.durations['75'] = ''
appVv.transitions.durations['50'] = ''
appVv.transitions.durations['25'] = ''
Transitions.easings
Type: Object
Transitions.easings Properties | Transitions.easings Prop Values |
---|---|
"linear" | "ease-linear" |
"in" | "ease-in" |
"out" | "ease-out" |
"inOut" | "ease-in-out" |
Examples
// ./src/app.vv.ts
appVv.transitions.easings = {
'linear': '',
'in': '',
'out': '',
'inOut': '',
}
// ./src/app.vv.ts
appVv.transitions.easings.linear = ''
appVv.transitions.easings.in = ''
appVv.transitions.easings.out = ''
appVv.transitions.easings.inOut = ''
Transitions.transitions
Type: Object
Transitions.transitions Properties | Transitions.transitions Prop Values |
---|---|
"default" | "transition" |
"all" | "transition-all" |
"colors" | "transition-colors" |
"none" | "transition-none" |
"opacity" | "transition-opacity" |
"shadow" | "transition-shadow" |
"transform" | "transition-transform" |
Examples
// ./src/app.vv.ts
appVv.transitions.transitions = {
'default': '',
'all': '',
'colors': '',
'none': '',
'opacity': '',
'shadow': '',
'transform': '',
}
// ./src/app.vv.ts
appVv.transitions.transitions.default = ''
appVv.transitions.transitions.all = ''
appVv.transitions.transitions.colors = ''
appVv.transitions.transitions.none = ''
appVv.transitions.transitions.opacity = ''
appVv.transitions.transitions.shadow = ''
appVv.transitions.transitions.transform = ''
Transitions.classes()
Returns: String
Default: "transition ease-in-out duration-300"
The Transitions.classes()
method returns a joined String
of the atomic classes within the various base properties of the Transitions Config Module object using the Transitions.getTransitionClasses()
, Transitions.getEasingClasses()
, and Transitions.getDurationClasses()
methods under the hood.
Arguments
Args | Type | Status | Description |
---|---|---|---|
transitionsKey | String | Optional | Property name/key of a Transitions.transitions object |
easingsKey | String | Optional | Property name/key of a Transitions.easings object |
durationsKey | String | Optional | Property name/key of a Transitions.durations object |
The applicable values for the transitionsKey
argument are set via the Transitions.transitions property names/keys and atomic class values.
The applicable values for the easingsKey
argument are set via the Transitions.easings property names/keys and atomic class values.
The applicable values for the durationsKey
argument are set via the Transitions.durations property names/keys and atomic class values.
Examples
<!-- ./src/components/SomeComponent.vue -->
<script setup lang="ts">
import appVv from '../app.vv'
</script>
<template>
<button :class="appVv.transitions.classes()">
Default Transition
</button>
<button :class="appVv.transitions.classes('colors', 'linear', '1000')">
Linear Color Transition
</button>
</template>
Transitions.custom()
Returns: String
Default: "transition ease-in-out duration-300"
The Transitions.custom()
method is essentially a more verbose and declarative version of the Transitions.classes()
method, which also returns a joined String
of the atomic classes within the various base properties of the Transitions Config Module object using the Transitions.getTransitionClasses()
, Transitions.getEasingClasses()
, and Transitions.getDurationClasses()
methods under the hood.
Arguments
Args | Type | Status | Description |
---|---|---|---|
object | Object | Required | A settings parameter object |
object.transitions | String | Optional | Property name/key of a Transitions.transitions object |
object.easings | String | Optional | Property name/key of a Transitions.easings object |
object.durations | String | Optional | Property name/key of a Transitions.durations object |
The applicable values for the object.transitions
settings object property are set via the Transitions.transitions property names/keys and atomic class values.
The applicable values for the object.easings
settings object property are set via the Transitions.easings property names/keys and atomic class values.
The applicable values for the object.durations
settings object property are set via the Transitions.durations property names/keys and atomic class values.
Examples
<!-- ./src/components/SomeComponent.vue -->
<script setup lang="ts">
import appVv from '../app.vv'
</script>
<template>
<button :class="appVv.transitions.custom()">
Default Transition
</button>
<button :class="appVv.transitions.custom({
transitions: 'colors',
easings: 'linear',
durations: '1000'
})">
Linear Color Transition
</button>
</template>
Transitions.getDurationClasses()
Returns: String
Default: "duration-300"
The Transitions.getDurationClasses()
method returns transition duration classes based on the optional argument value passed into the method. These duration related classes come from the Transitions.durations
object property names/keys and values (of atomic classes).
Arguments
Args | Type | Status | Description |
---|---|---|---|
durationsKey | String | Optional | Property name/key of an Transitions.durations object |
The applicable values for the durationsKey
argument are set via the Transitions.durations property names/keys and atomic class values.
Examples
<!-- ./src/components/SomeComponent.vue -->
<script setup lang="ts">
import appVv from '../app.vv'
</script>
<template>
<button :class="appVv.transitions.getDurationClasses()">
300ms Default Duration
</button>
<button :class="appVv.transitions.getDurationClasses('1000')">
1000ms Duration
</button>
</template>
Transitions.getEasingClasses()
Returns: String
Default: "ease-in-out"
The Transitions.getEasingClasses()
method returns transition duration classes based on the optional argument value passed into the method. These duration related classes come from the Transitions.easings
object property names/keys and values (of atomic classes).
Arguments
Args | Type | Status | Description |
---|---|---|---|
easingsKey | String | Optional | Property name/key of an Transitions.easings object |
The applicable values for the easingsKey
argument are set via the Transitions.easings property names/keys and atomic class values.
Examples
<!-- ./src/components/SomeComponent.vue -->
<script setup lang="ts">
import appVv from '../app.vv'
</script>
<template>
<button :class="appVv.transitions.getEasingClasses()">
Ease-In-Out Default Easing
</button>
<button :class="appVv.transitions.getEasingClasses('in')">
Ease-In Easing
</button>
</template>
Transitions.getTransitionClasses()
Returns: String
Default: "transition"
The Transitions.getTransitionClasses()
method returns transition duration classes based on the optional argument value passed into the method. These duration related classes come from the Transitions.transitions
object property names/keys and values (of atomic classes).
Arguments
Args | Type | Status | Description |
---|---|---|---|
transitionsKey | String | Optional | Property name/key of an Transitions.transitions object |
The applicable values for the transitionsKey
argument are set via the Transitions.transitions property names/keys and atomic class values.
Examples
<!-- ./src/components/SomeComponent.vue -->
<script setup lang="ts">
import appVv from '../app.vv'
</script>
<template>
<button :class="appVv.transitions.getTransitionClasses()">
Default Transition Type
</button>
<button :class="appVv.transitions.getTransitionClasses('colors')">
Transition Colors
</button>
</template>
Module Code
// ./src/configs/Transitions.ts
import type { ConfigTransitions } from '../types/ConfigTransitions'
export default <ConfigTransitions>{
durations: {
'1200': 'duration-1200',
'1150': 'duration-1150',
'1100': 'duration-1100',
'1050': 'duration-1050',
'1000': 'duration-1000',
'950': 'duration-950',
'900': 'duration-900',
'850': 'duration-850',
'800': 'duration-800',
'750': 'duration-750',
'700': 'duration-700',
'650': 'duration-650',
'600': 'duration-600',
'550': 'duration-550',
'500': 'duration-500',
'475': 'duration-475',
'450': 'duration-450',
'425': 'duration-425',
'400': 'duration-400',
'375': 'duration-375',
'350': 'duration-350',
'325': 'duration-325',
'300': 'duration-300',
'275': 'duration-275',
'250': 'duration-250',
'225': 'duration-225',
'200': 'duration-200',
'175': 'duration-175',
'150': 'duration-150',
'125': 'duration-125',
'100': 'duration-100',
'75': 'duration-75',
'50': 'duration-50',
'25': 'duration-25',
},
easings: {
linear: 'ease-linear',
in: 'ease-in',
out: 'ease-out',
inOut: 'ease-in-out',
},
transitions: {
default: 'transition',
all: 'transition-all',
colors: 'transition-colors',
none: 'transition-none',
opacity: 'transition-opacity',
shadow: 'transition-shadow',
transform: 'transition-transform',
},
getDurationClasses: function ( durationsKey ) {
const key = durationsKey && this.durations?.[durationsKey] ? durationsKey : '300'
const output = this.durations?.[key] ? this.durations?.[key] : ''
return output
},
getEasingClasses: function ( easingsKey ) {
const key = easingsKey && this.easings?.[easingsKey] ? easingsKey : 'inOut'
const output = this.easings?.[key] ? this.easings?.[key] : ''
return output
},
getTransitionClasses: function ( transitionsKey ) {
const key = transitionsKey && this.transitions?.[transitionsKey] ? transitionsKey : 'default'
const output = this.transitions?.[key] ? this.transitions?.[key] : ''
return output
},
custom: function ( settings ) {
const obj = {
transitions: settings && settings.transitions ? settings.transitions : '',
easings: settings && settings.easings ? settings.easings : '',
durations: settings && settings.durations ? settings.durations : '',
}
return [
this.getTransitionClasses(obj.transitions),
this.getEasingClasses(obj.easings),
this.getDurationClasses(obj.durations),
].join(' ').replace(/\s+/g,' ').trim()
},
classes: function ( transitionsKey, easingsKey, durationsKey ) {
const transitions = transitionsKey ? transitionsKey : ''
const easings = easingsKey ? easingsKey : ''
const durations = durationsKey ? durationsKey : ''
return [
this.getTransitionClasses(transitions),
this.getEasingClasses(easings),
this.getDurationClasses(durations),
].join(' ').replace(/\s+/g,' ').trim()
},
}