keycloak将前端页面分为四类:按类设置主题。
- Login - Login forms,包含注册。
- Account - Account management
- Admin - Admin console
- Email - Emails
默认主题
keycloak默认提供了两套主题,base 和 keycloak。
- base是没有加入任何样式的。
- keycloak加入了个性化的样式,keycloak 主题继承自 base 主题。
一、自定义登录页面主题
1. 效果图
pc端效果:
移动端效果:
2. 开发步骤
-
在keycloak安装目录下的 themes 路径下,新建文件夹,新建文件夹的名称即新主题的名称,如 testtheme。
-
在 testtheme路径下,按需分为四类页面(account、admin、email、login),此处设计的是login页面,所以先创建一个login文件夹。
-
在login文件夹下,创建 theme.properties 文件,在该配置文件中可以配置很多信息,如:继承自哪个主题、导入common资源、引入哪些css、引入哪些js、以及其他一些配置信息。
parent=keycloak
import=common/keycloak
locales=zh-CN
- 在login/resources文件夹下,存放css、js、img等文件。
login.css
.login-pf {
background: none;
}
.login-pf body {
background: url('../img/login-bg.jpg') center center no-repeat;
background-size: cover;
height: 100%;
}
.login-pf-page .login-pf-page-header{
display:none;
}
.login-pf-page .card-pf{
width:500px;
position:absolute;
top:30%;
left:55%;
}
.login-pf-page .login-pf-header h1{
font-weight: bold;
line-height: 1.8;
margin-bottom: 20px;
}
.login-pf-page .login-pf-header h1::after{
content: '';
display: block;
width:52px;
height:3px;
background-color: #0470ff;
margin:0 auto;
}
.pf-c-button.pf-m-primary{
background-color: #0088ff;
padding:10px;
}
.form-group{
margin-bottom:20px;
}
@media (max-width: 767px){
.login-pf body {
background: url('../img/login-bg-phone.png') top center no-repeat;
background-size: contain;
}
.login-pf-page .card-pf{
width: 100%;
position: absolute;
top: 30%;
left: 5px;
background: none;
padding: 10px 43px;
box-shadow: none;
}
}
- 国际化 Messages。 在login/messages文件夹下,创建messages_zh_CN.properties文件。
# encoding: utf-8
loginAccountTitle=账号登录
usernameOrEmail=账号:
password=密码:
# invalidUserMessage=用户名或密码错误。
3. 配置
- 在keycloak后台修改login主题。
- 国际化
二、自定义Account账户信息页面主题
1. 效果图
2. 开发步骤
设计步骤同上面的自定义登录主题一样。
- 在 themes/testtheme路径下,创建一个account文件夹。
- 在account文件夹下,创建 theme.properties 文件,在该配置文件中可以配置很多信息,如:继承自哪个主题、导入common资源、引入哪些css、引入哪些js、以及其他一些配置信息。
parent=keycloak
import=common/keycloak
locales=zh-CN
styles=css/accountMain.css
- 在account/resources文件夹下,存放css、js、img等文件。
accountMain.css
html,body{
height: 100%;
}
header.navbar-pf{
background-color: #483D8B;
}
header .navbar{
margin-bottom: 0;
}
header .navbar .navbar-header{
border:0;
}
header .navbar .navbar-header .navbar-title{
color:#fff;
font-weight: bold;
display: none;
}
header .navbar .navbar-header .container::before{
content: '哈喽呀!';
color:#fff;
font-weight: bold;
font-size: 24px;
margin-top: 10px;
margin-bottom: 10px;
}
.bs-sidebar ul{
margin-top:50px;
list-style: none;
}
.bs-sidebar ul li{
padding:5px 0;
}
.bs-sidebar ul li a{
font-size:16px;
color:#333;
}
.bs-sidebar ul li.active a{
color:#483D8B;
font-weight: bold;
}
.bs-sidebar ul li:nth-child(3){
display: none;
}
.bs-sidebar ul li:nth-child(4){
display: none;
}
.bs-sidebar ul li:nth-child(5){
display: none;
}
.content-area{
margin-top:50px;
}
.content-area h2{
color:#483D8B;
font-weight: bold;
}
.content-area .subtitle{
margin-top:30px;
}
#kc-locale-dropdown{
display: none;
}
.navbar-collapse-1{
position: absolute;
top:15px;
right:20px;
}
ul.navbar-utility a{
font-size: 14px !important;
color:#fff !important;
border-color:#fff !important;
/* margin-top:20px; */
}
@media (min-width: 768px) {
.navbar-pf .navbar-utility>li>a, .navbar-pf .navbar-utility>li>button{
color:#fff !important;
}
}
3. 配置
在keycloak后台修改account主题。