Dans mon index.js
J'ai remplacé manuellement le fichier Vuetify theme
avec la couleur de mon entreprise :
Vue.use(Vuetify, {
theme: {
primary: '#377ef9',
secondary: '#1b3e70',
accent: '#ff643d',
error: '#ff643d'
...
}
Maintenant, je peux utiliser ces couleurs à partir de mes modèles comme suit :
<my-text-field name="input text"
label="text"
value="text text text text..."
type="text"
color="primary">
</my-text-field>
Ce que je cherche, c'est à utiliser le primary
ou toute autre variable dans le theme
défini ci-dessus, dans le style de mon modèle :
<script>
import { VTextField } from 'vuetify'
export default {
extends: VTextField
}
</script>
<style scoped lang="stylus">
label
color: <seconday color> <-- this is what I'm after
color: #1b3e70 <-- this works, but not quite good enough for me
</style>
Je peux facilement écrire la valeur hexadécimale de mes couleurs dans la section style, mais je ne veux pas me répéter, et préfère utiliser mon theme
Ainsi, il me sera plus facile de changer facilement les couleurs partout, et d'éviter les fautes de frappe qui entraîneraient des erreurs dans la définition des couleurs.
0 votes
Je ne suis pas sûr, mais je crois que vous devez les définir dans la section
.styl
(c'est-à-diremain.styl
) également. Ou, par exemple, danscustom_colors.styl
que vous importez ensuite dans les composants<style scoped lang="stylus">
2 votes
@Traxo Je ne veux pas définir mes styles deux fois. La maintenance va devenir difficile. Je cherche une solution parfaite qui me permette de définir mes éléments à un seul endroit, et de les utiliser dans tout le système...
0 votes
Je comprends, c'est pourquoi j'ai mis un commentaire parce que je ne suis pas sûr à 100% qu'il y ait une solution vuetify à ce problème. Je pense que la seule façon vuetify de le faire est de copier ces valeurs dans le fichier
.styl
0 votes
Voir modification importante dans mon réponse .
1 votes
J'ai eu le même problème et j'ai fini par utiliser this.$vuetify.theme.currentTheme.accent dans mon composant
0 votes
Voir vuetifyjs.com/fr/personnalisation/theme/#theme il devrait être theme : { themes ...