IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 【IVIEW定制主题】 -> 正文阅读

[游戏开发]【IVIEW定制主题】

View UI(iVIew)默认提供了一套 UI 主题,并且可以在一定程度上定制新主题,以满足业务和品牌上的多样化视觉需求。

View UI(iVIew)的样式是基于 Less 进行开发的,默认以前缀 .ivu- 作为命名空间,并且定义了一套样式变量,定制主题,就是编辑这个变量列表。

变量覆盖(推荐)

如果你的项目使用了 webpack 工程,可以通过变量覆盖的方式来实现主题定制。

首先在项目中先建一个目录,比如 my-theme,然后在 my-theme 下建立一个 less 文件 index.less,并写入下面内容:

@import '~view-design/src/styles/index.less';

// Here are the variables to cover, such as:
@primary-color: #8c0776;

完整的变量列表可以查看 默认样式变量。

默认样式变量:ViewUI/src/styles/custom.less

@import "color/colors";

// Prefix
@css-prefix             : ivu-;
@css-prefix-iconfont    : ivu-icon;

// Color
@primary-color          : #2d8cf0;
@info-color             : #2db7f5;
@success-color          : #19be6b;
@processing-color       : @primary-color;
@warning-color          : #ff9900;
@error-color            : #ed4014;
@normal-color           : #e6ebf1;
@link-color             : #2D8cF0;
@link-hover-color       : tint(@link-color, 20%);
@link-active-color      : shade(@link-color, 5%);
@selected-color         : fade(@primary-color, 90%);
@tooltip-color          : #fff;
@subsidiary-color       : #808695;
@rate-star-color        : #f5a623;
@white: #fff;
@black: #000;

// Base
@body-background        : #fff;
@component-background   : #fff;
@font-family            : "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;
@code-family            : Consolas,Menlo,Courier,monospace;
@title-color            : #17233d;
@text-color             : #515a6e;
@text-color-secondary: fade(@black, 45%);
@heading-color: fade(#000, 85%);
@heading-color-dark: fade(@white, 100%);
@font-size-base         : 14px;
@font-size-small        : 12px;
@font-size-large        : @font-size-base + 2px;
@line-height-base       : 1.5;
@line-height-computed   : floor((@font-size-base * @line-height-base));
@border-radius-base     : 6px;
@border-radius-small    : 4px;
@cursor-disabled        : not-allowed;

// vertical paddings
@padding-lg: 24px; // containers
@padding-md: 16px; // small containers and buttons
@padding-sm: 12px; // Form controls and items
@padding-xs: 8px; // small items

// Border color
@border-color-base      : #dcdee2;  // outside
@border-color-split     : #e8eaec;  // inside
@border-width-base      : 1px;            // width of the border for a component
@border-style-base      : solid;          // style of a components border

// Background color
@background-color-base        : #f7f7f7;  // base
@background-color-select-hover: @input-disabled-bg;
@tooltip-bg                   : rgba(70, 76, 91, .9);
@head-bg                      : #f9fafc;
@table-thead-bg               : #f8f8f9;
@table-td-stripe-bg           : #f8f8f9;
@table-td-hover-bg            : #ebf7ff;
@table-td-highlight-bg        : #ebf7ff;
@menu-dark-title              : #515a6e;
@menu-dark-active-bg          : #363e4f;
@menu-dark-subsidiary-color   : rgba(255,255,255,.7);
@menu-dark-group-title-color  : rgba(255,255,255,.36);
@date-picker-cell-hover-bg    : #e1f0fe;

// Shadow
@shadow-color           : rgba(0, 0, 0, .2);
@shadow-base            : @shadow-down;
@shadow-card            : 0 1px 1px 0 rgba(0,0,0,.1);
@shadow-up              : 0 -1px 6px @shadow-color;
@shadow-down            : 0 1px 6px @shadow-color;
@shadow-left            : -1px 0 6px @shadow-color;
@shadow-right           : 1px 0 6px @shadow-color;

// Button
@btn-height-base        : 32px;
@btn-height-large       : 40px;
@btn-height-small       : 24px;

@btn-padding-base       : 0 @padding-md - 1px;
@btn-padding-large      : @btn-padding-base;
@btn-padding-small      : 0 @padding-xs - 1px;

@btn-font-weight        : normal;
@btn-padding-base-icon  : 5px 15px 6px;
@btn-padding-large-icon : 6px 15px 6px 15px;
@btn-padding-small-icon : 1px 7px 2px;
@btn-font-size          : @font-size-base;
@btn-font-size-large    : @font-size-large;
@btn-font-size-small    : @font-size-base;
@btn-border-radius      : 4px;
@btn-border-radius-small: 3px;
@btn-group-border       : shade(@primary-color, 5%);

@btn-disable-color      : #c5c8ce;
@btn-disable-bg         : @background-color-base;
@btn-disable-border     : @border-color-base;

@btn-default-color      : @text-color;
@btn-default-bg         : #fff;
@btn-default-border     : @border-color-base;

@btn-primary-color      : #fff;
@btn-primary-bg         : @primary-color;

@btn-ghost-color        : @text-color;
@btn-ghost-bg           : #fff;
@btn-ghost-border       : @border-color-base;

@btn-circle-size        : @btn-height-base;
@btn-circle-size-large  : @btn-height-large;
@btn-circle-size-small  : @btn-height-small;

@btn-square-size        : @btn-height-base;
@btn-square-size-large  : @btn-height-large;
@btn-square-size-small  : @btn-height-small;

// Layout and Grid
@grid-columns                : 24;
@grid-gutter-width           : 0;
@layout-body-background      : #f5f7f9;
@layout-header-background    : #515a6e;
@layout-header-height        : 64px;
@layout-header-padding       : 0 50px;
@layout-footer-padding       : 24px 50px;
@layout-footer-background    : @layout-body-background;
@layout-sider-background     : @layout-header-background;
@layout-trigger-height       : 48px;
@layout-trigger-color        : #fff;
@layout-zero-trigger-width   : 36px;
@layout-zero-trigger-height  : 42px;

// Legend
@legend-color           : #999;

// Input
@input-height-base           : 32px;
@input-height-large          : 40px;
@input-height-small          : 24px;

@input-padding-horizontal    : 7px;
@input-padding-vertical-base : 4px;
@input-padding-vertical-small: 1px;
@input-padding-vertical-large: 6px;

@input-placeholder-color     : @btn-disable-color;
@input-color                 : @text-color;
@input-border-color          : @border-color-base;
@input-bg                    : #fff;
@input-group-bg              : #f8f8f9;

@input-hover-border-color    : @primary-color;
@input-focus-border-color    : @primary-color;
@input-disabled-bg           : #f3f3f3;

// Tag
@tag-font-size          : 12px;

// Media queries breakpoints
// Extra small screen / phone
@screen-xs              : 480px;
@screen-xs-min          : @screen-xs;
@screen-xs-max          : (@screen-xs-min - 1);

// Small screen / tablet
@screen-sm              : 576px;
@screen-sm-min          : @screen-sm;
@screen-sm-max          : (@screen-sm-min - 1);

// Medium screen / desktop
@screen-md              : 768px;
@screen-md-min          : @screen-md;
@screen-md-max          : (@screen-md-min - 1);

// Large screen / wide desktop
@screen-lg              : 992px;
@screen-lg-min          : @screen-lg;
@screen-lg-max          : (@screen-lg-min - 1);

// Extra large screen / full hd
@screen-xl              : 1200px;
@screen-xl-min          : @screen-xl;
@screen-xl-max          : (@screen-xl-min - 1);

// Extra extra large screen / large descktop
@screen-xxl             : 1600px;
@screen-xxl-min         : @screen-xxl;
@screen-xxl-max         : (@screen-xxl-min - 1);

// Z-index
@zindex-spin            : 8;
@zindex-affix           : 10;
@zindex-back-top        : 10;
@zindex-select          : 900;
@zindex-modal           : 1000;
@zindex-drawer          : 1000;
@zindex-message         : 1010;
@zindex-notification    : 1010;
@zindex-tooltip         : 1060;
@zindex-transfer        : 1060;
@zindex-loading-bar     : 2000;
@zindex-spin-fullscreen : 2010;

// Animation
@animation-time         : .3s;
@animation-time-quick   : .15s;
@transition-time        : .2s;
@ease-in-out            : ease-in-out;

// Slider
@slider-color              : tint(@primary-color, 20%);
@slider-height             : 4px;
@slider-margin             : 16px 0;
@slider-button-wrap-size   : 18px;
@slider-button-wrap-offset : -5px;
@slider-disabled-color     : #ccc;

// Avatar
@avatar-size-base: 32px;
@avatar-size-lg: 40px;
@avatar-size-sm: 24px;
@avatar-font-size-base: 18px;
@avatar-font-size-lg: 24px;
@avatar-font-size-sm: 14px;
@avatar-bg: #ccc;
@avatar-color: #fff;
@avatar-border-radius: @border-radius-small;

// Anchor
@anchor-border-width: 2px;

// List
// ---
@list-header-background: transparent;
@list-footer-background: transparent;
@list-empty-text-padding: @padding-md;
@list-item-padding: @padding-sm 0;
@list-item-meta-margin-bottom: @padding-md;
@list-item-meta-avatar-margin-right: @padding-md;
@list-item-meta-title-margin-bottom: @padding-sm;

然后在入口文件 main.js 内导入这个 less 文件即可:

import Vue from 'vue';
import ViewUI from 'view-design';
import '../my-theme/index.less';

Vue.use(ViewUI);

通过安装工具修

如果没有使用 webpack,可以用我们提供的工具 iview-theme 来编译。

首先需要安装主题生成工具,从 npm 全局或在项目中局部安装,以全局安装为例:

npm install iview-theme -g

然后在业务工程里新建一个目录,用来存放主题文件,使用下面的命令初始化主题,这时会从 iView 仓库拉取最新的样式文件:

iview-theme init my-theme

如需拉取指定版本号的 iView,使用下面的命令。(实际运行下面命令时,需将 xxx 替换成项目所使用的 iView 版本,如 “ v2.14.3 ”)

iview-theme init my-theme xxx

最后编辑 my-theme/custom.less 文件,用命令编译即可:

cd my-theme
iview-theme build -o dist/

最终会在指定的目录下编译为 iview.css 的文件,只需在入口处引用它就可以了,比如在 main.js 文件:

import Vue from 'vue';
import ViewUI from 'view-design';
import '../my-theme/dist/iview.css';

Vue.use(ViewUI);

我们不生产主题,我们只是大自然的搬运工

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:59:49  更:2022-03-30 19:00:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:50:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码