2 回答

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
將顏色導(dǎo)入您的組件,然后使用它的修飾符訪問(wèn)顏色,例如:
import colors from 'vuetify/lib/util/colors'
....
<div :style="`border: 5px solid ${ colors['amber']['lighten2'] }`"></div>

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
success因此,雖然接受的答案是正確的,但我認(rèn)為更完整的功能還包括翻譯主題顏色(例如, error)及其陰影(例如)的能力success darken-2,以及在顏色已經(jīng)通過(guò)時(shí)處理輸入十六進(jìn)制、RGB 或 RGBA。
這是我在 mixin 中實(shí)現(xiàn)的一個(gè)函數(shù),它執(zhí)行以下操作:
import colors from 'vuetify/lib/util/colors';
...
methods: {
translateColor(color) {
if ('string' !== typeof color || color.trim().length == 0) {
return color;
}
if (color.startsWith('#') || color.startsWith('rgb')) {
return color;
}
const themeColors = Object.keys(this.$vuetify.theme.currentTheme);
const themeColorIndex = themeColors.indexOf(color);
if (themeColorIndex > -1) {
return this.$vuetify.theme.currentTheme[color];
}
let baseColor;
let shade;
if (color.includes(' ')) {
const [bc, s] = color.split(' ');
baseColor = bc;
shade = s;
}
else {
baseColor = color;
shade = 'base';
}
const generalColors = Object.keys(colors);
const generalColorsIndex = generalColors.indexOf(baseColor);
const themeColorsShadeIndex = themeColors.indexOf(baseColor);
if (generalColorsIndex > -1) {
const fixedShade = shade.toLowerCase().replace('-', '');
const co = colors[generalColors[generalColorsIndex]];
return co[fixedShade];
}
else if (themeColorsShadeIndex > -1) {
const fixedShade = shade.toLowerCase().replace('-', '');
const co = this.$vuetify.theme.parsedTheme[themeColors[themeColorsShadeIndex]]
return co[fixedShade];
}
return color;
}
}
現(xiàn)在我確定我的方法可以優(yōu)化,但一般的想法是它能夠從包含的 Material Design 顏色和主題的顏色中讀取。
添加回答
舉報(bào)