I have a vuejs project, started with vite
and successfully added both tailwindcss
and formkit
to it.
Whilst inline styling of formKit classes with tailwindcss works and defining classes in main.js
also works, I stumble upon inserting the classes in the formkit.config.js
file (where I ideally want to group them).
Here's what I do (following the documentation):
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
const formKitTailwind = require ("@formkit/themes/tailwindcss");
export default {
content: [
"./index.html",
"./src/**/*.{vue,js,ts,jsx,tsx}",
"./formkit.config.js" // the path is correct
],
theme: {
// cut for brievity
},
plugins: [formKitTailwind]
};
Then, formkit.config.js
contains:
//formkit.config.js
import { generateClasses } from '@formkit/themes'
export default {
config: {
classes: generateClasses({
text: {
// these classes were tested inline and in main.js
label: 'text-blue-500',
input:'text-pink-600 w-full my-2 p-2 align-middle'
}
})
}
}
And main.js
//main.js
import { createApp } from 'vue'
import App from './App.vue'
import { plugin, defaultConfig } from '@formkit/vue'
import './style.css'
import router from './router'
import { fr } from '@formkit/i18n'
createApp(App)
.use(
plugin,
defaultConfig({
locales:{ fr },
locale: 'fr',
messages:{
fr:{
ui:{
submit: 'envoyer'
}
}
}
})
)
.use(router)
.mount('#app')
I get no error messages. But the classes don't show in the html
of the form.
You need to import your FormKit config from formkit.config.js
and use it in your main.js
. Right now you're defining it in formkit.config.js
but then using a custom inline config in main.js
.
You want Something like this:
//main.js
import { createApp } from 'vue'
import App from './App.vue'
import { plugin, defaultConfig } from '@formkit/vue'
import './style.css'
import router from './router'
import myConfig from './formkit.config.js'
createApp(App)
.use(
plugin,
defaultConfig(myConfig)
)
.use(router)
You'll want to combine the inline config options you have in main.js
currently with your imported config so that you don't lose any of your settings.
//formkit.config.js
import { fr } from '@formkit/i18n'
import { generateClasses } from '@formkit/themes'
export default {
locales:{ fr },
locale: 'fr',
messages:{
fr:{
ui:{
submit: 'envoyer'
}
}
},
config: {
classes: generateClasses({
text: {
label: 'text-blue-500',
input:'text-pink-600 w-full my-2 p-2 align-middle'
}
})
}
}