情况:
在我的Vue应用程序中,我使用aws authenticator来处理登录/注册。
我需要自定义样式,但这有点棘手,因为它的结构是由shadow DOM组成的。
修改变量:
到目前为止,我只设法修改了一些放大变量。
我是这样做的:
:root {
--amplify-background-color: transparent;
--amplify-secondary-color: white;
--amplify-primary-contrast: white;
--amplify-primary-color: #E00C1D;
}
附加说明:目标amplify-sign-in
而不是:root
也可以,但逻辑上这种风格只适用于登录表单,而不适用于注册表单(amplify-sign-up
)。
针对:root
的自定义样式适用于登录和注册表单。
自定义输入字段:
这就是我被卡住的地方。输入中文本的颜色由--amplify-secondary-color
var给出,在我的例子中,它需要是白色。但是这样,输入的文本在白色背景上是不可见的。
这是amplify-sign-in
的HTML结构。input
位于amplify-input
内部。
这是.input
类的样式。如您所见,颜色由--color
var控制
这就是--color
var所指的:
我的尝试:
我尝试了几种方法,但没有一种有效。我尝试以.input
类、input
、amplify-input
为目标,或者更改--color
var。
以下是一些尝试:
:host {
--color: red !important;
}
:host(.input) {
color: red !important;
--color: red !important;
}
amplify-input {
--color: red !important;
& .input {
color:red !important;
--color: red !important;
}
}
文档:
这是关于css定制的docs。不幸的是,文档相当贫乏
测试:
使用Vue设置工作示例的最快方法是从amplify-js-samples包中设置此示例:https://github.com/aws-amplify/amplify-js-samples/tree/main/samples/vue/auth/authenticator
问题:
如何修改aws验证器的输入文本?
3条答案
按热度按时间k2fxgqgv1#
更新到最新版本的Amplify UI for Vue可能是有意义的。
有关样式的更新文档https://ui.docs.amplify.aws/vue/connected-components/authenticator/customization#css-style
它还链接到显示所有CSS变量https://ui.docs.amplify.aws/vue/theming/css-variables的另一个页面
更新后的版本具有更细粒度的CSS类,例如:
--amplify-colors-font-primary
--amplify-colors-font-interactive
--amplify-colors-font-active
--amplify-colors-font-focus
o8x7eapl2#
试试看scss
puruo6ea3#
由于您使用的是SCSS,因此可以这样做
!important
在这里很好,因为它是您要覆盖的第三方。你也可以这样保存你的
<style lang="scss" scoped>
。正如官方vue loader文档中所解释的:https://vue-loader.vuejs.org/guide/scoped-css.html#deep-selectors
更多细节,这篇文章总是一个很好的参考:https://stackoverflow.com/a/55368933/8816585