refactor: remove not use code
parent
f3ffcdbc7e
commit
53b146ab88
|
@ -1,210 +0,0 @@
|
|||
/* eslint-disable */
|
||||
import PropTypes from '../_util/vue-types';
|
||||
import { defaultConfigProvider } from '../config-provider';
|
||||
import BaseMixin from '../_util/BaseMixin';
|
||||
import Pickr from '@simonwep/pickr/dist/pickr.es5.min';
|
||||
import Icon from '../icon';
|
||||
import LocaleReceiver from '../locale-provider/LocaleReceiver';
|
||||
import enUS from './locale/en_US';
|
||||
import debounce from 'lodash-es/debounce';
|
||||
|
||||
import { getOptionProps, findDOMNode } from '../_util/props-util';
|
||||
let colors = '#194d33';
|
||||
export default {
|
||||
name: 'AColorPicker',
|
||||
mixins: [BaseMixin],
|
||||
inject: {
|
||||
configProvider: { default: () => defaultConfigProvider },
|
||||
},
|
||||
model: {
|
||||
prop: 'value',
|
||||
event: 'change.value', //为了支持v-model直接返回颜色字符串 所以用了自定义的事件,与pickr自带change事件进行区分
|
||||
},
|
||||
props: {
|
||||
prefixCls: String,
|
||||
defaultValue: String, //默认值
|
||||
config: PropTypes.object, //pickr配置
|
||||
value: String, //颜色值
|
||||
locale: PropTypes.object, //双语包
|
||||
colorRounded: Number, //颜色数值保留几位小数
|
||||
size: PropTypes.oneOf(['default', 'small', 'large']).def('default'), //尺寸
|
||||
getPopupContainer: Function, //指定渲染容器
|
||||
disabled: { type: Boolean, default: false }, //是否禁用
|
||||
format: String, //颜色格式设置
|
||||
alpha: { type: Boolean, default: false }, //是否开启透明通道
|
||||
hue: { type: Boolean, default: true }, //是否开启色彩预选
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
colors,
|
||||
myOpen: false,
|
||||
pickr: null,
|
||||
i18n: enUS,
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
'configProvider.locale.ColorPicker': {
|
||||
handler(val) {
|
||||
if (this.locale) return;
|
||||
this.i18n = val;
|
||||
this.reInitialize();
|
||||
},
|
||||
},
|
||||
locale(val) {
|
||||
this.i18n = val.ColorPicker || val.lang;
|
||||
this.reInitialize();
|
||||
},
|
||||
value(val) {
|
||||
this.setColor(val);
|
||||
},
|
||||
disabled(val) {
|
||||
this.pickr[val ? 'disable' : 'enable']();
|
||||
},
|
||||
config: {
|
||||
handler() {
|
||||
this.reInitialize();
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
format(val) {
|
||||
const type = val.toLocaleUpperCase();
|
||||
let res = this.pickr.setColorRepresentation(type);
|
||||
if (res) {
|
||||
this.pickr.applyColor();
|
||||
} else {
|
||||
throw new TypeError('format was invalid');
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
if (this.locale) {
|
||||
this.i18n = this.locale.ColorPicker || this.locale.lang;
|
||||
}
|
||||
this.createPickr();
|
||||
this.eventsBinding();
|
||||
},
|
||||
unmounted() {
|
||||
this.pickr.destroyAndRemove();
|
||||
},
|
||||
methods: {
|
||||
reInitialize() {
|
||||
this.pickr.destroyAndRemove();
|
||||
const dom = document.createElement('div');
|
||||
dom.id = 'color-picker' + this._uid;
|
||||
const box = findDOMNode(this).querySelector('#color-picker-box' + this._uid);
|
||||
box.appendChild(dom);
|
||||
this.createPickr();
|
||||
this.eventsBinding();
|
||||
},
|
||||
setColor: debounce(function (val) {
|
||||
this.pickr.setColor(val);
|
||||
}, 1000),
|
||||
eventsBinding() {
|
||||
const pickrEvents = [
|
||||
'init',
|
||||
'hide',
|
||||
'show',
|
||||
'save',
|
||||
'clear',
|
||||
'change',
|
||||
'changestop',
|
||||
'cancel',
|
||||
'swatchselect',
|
||||
];
|
||||
Object.keys(this.$listeners).forEach(event => {
|
||||
pickrEvents.includes(event) && this.pickr.on(event, this.$listeners[event]);
|
||||
});
|
||||
},
|
||||
createPickr() {
|
||||
const { getPopupContainer } = getOptionProps(this);
|
||||
const { getPopupContainer: getContextPopupContainer } = this.configProvider;
|
||||
const container = getPopupContainer || getContextPopupContainer;
|
||||
this.pickr = Pickr.create(
|
||||
Object.assign(
|
||||
{
|
||||
el: '#color-picker' + this._uid,
|
||||
container: (container && container(findDOMNode(this))) || document.body,
|
||||
theme: 'monolith', // or 'monolith', or 'nano'
|
||||
default: this.value || this.defaultValue || null, // 有默认颜色pickr才可以获取到_representation
|
||||
components: {
|
||||
// Main components
|
||||
preview: true,
|
||||
opacity: this.alpha,
|
||||
hue: this.hue,
|
||||
// Input / output Options
|
||||
interaction: {
|
||||
hex: true,
|
||||
rgba: true,
|
||||
input: true,
|
||||
clear: true,
|
||||
save: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
this.config,
|
||||
{ i18n: this.i18n },
|
||||
),
|
||||
)
|
||||
.on('save', (color, instance) => {
|
||||
if (color) {
|
||||
let _representation = instance._representation || 'HEXA';
|
||||
color = color['to' + _representation]().toString(this.colorRounded || 0);
|
||||
}
|
||||
this.$emit('change.value', color || '');
|
||||
})
|
||||
.on('hide', () => {
|
||||
this.setState({ myOpen: false });
|
||||
});
|
||||
},
|
||||
handleOpenChange() {
|
||||
const open = !this.myOpen;
|
||||
this.setState({ myOpen: open });
|
||||
this.pickr[open ? 'show' : 'hide']();
|
||||
this.$emit('openChange', open);
|
||||
},
|
||||
getDefaultLocale() {
|
||||
const result = {
|
||||
...enUS,
|
||||
...this.$props.locale,
|
||||
};
|
||||
result.lang = {
|
||||
...result.lang,
|
||||
...(this.$props.locale || {}).lang,
|
||||
};
|
||||
return result;
|
||||
},
|
||||
renderColorPicker() {
|
||||
const { prefixCls: customizePrefixCls } = this.$props;
|
||||
const { getPrefixCls } = this.configProvider;
|
||||
const prefixCls = getPrefixCls('color-picker', customizePrefixCls);
|
||||
const { disabled } = getOptionProps(this);
|
||||
const classString = {
|
||||
[prefixCls]: true,
|
||||
[`${prefixCls}-open`]: this.myOpen,
|
||||
[`${prefixCls}-lg`]: this.size === 'large',
|
||||
[`${prefixCls}-sm`]: this.size === 'small',
|
||||
[`${prefixCls}-disabled`]: this.disabled,
|
||||
};
|
||||
return (
|
||||
<div class={classString} tabindex={disabled ? -1 : 0} onClick={this.handleOpenChange}>
|
||||
<div class={`${prefixCls}-selection`}>
|
||||
<div id={'color-picker-box' + this._uid}>
|
||||
<div id={'color-picker' + this._uid}></div>
|
||||
</div>
|
||||
<Icon type="down" class={`${prefixCls}-icon`} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
render() {
|
||||
return (
|
||||
<LocaleReceiver
|
||||
componentName="ColorPicker"
|
||||
defaultLocale={this.getDefaultLocale}
|
||||
scopedSlots={{ default: this.renderColorPicker }}
|
||||
/>
|
||||
);
|
||||
},
|
||||
};
|
|
@ -1,337 +0,0 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`ColorPicker prop locale should works 1`] = `
|
||||
<div tabindex="0" class="ant-color-picker">
|
||||
<div class="ant-color-picker-selection">
|
||||
<div id="color-picker-box25">
|
||||
<div class="pickr">
|
||||
|
||||
<button type="button" class="pcr-button" role="button" aria-label="toggle color picker dialog"></button>
|
||||
|
||||
|
||||
</div>
|
||||
</div><i aria-label="icon: down" class="anticon anticon-down ant-color-picker-icon"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class="">
|
||||
<path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path>
|
||||
</svg></i>
|
||||
</div>
|
||||
<div class="pcr-app" data-theme="monolith" aria-label="color picker dialog" role="window">
|
||||
<div class="pcr-selection">
|
||||
<div class="pcr-color-preview">
|
||||
<button type="button" class="pcr-last-color" aria-label="use previous color"></button>
|
||||
<div class="pcr-current-color"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-palette">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-chooser">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-opacity" style="display:none" hidden="">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-swatches "></div>
|
||||
|
||||
<div class="pcr-interaction">
|
||||
<input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">
|
||||
|
||||
<input class="pcr-type active" data-type="HEXA" value="HEXA" type="button">
|
||||
<input class="pcr-type" data-type="RGBA" value="RGBA" type="button">
|
||||
<input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">
|
||||
|
||||
<input class="pcr-save" value="1セーブ" type="button" aria-label="save and close">
|
||||
<input class="pcr-cancel" value="1キャンセル" type="button" style="display:none" hidden="" aria-label="cancel and close">
|
||||
<input class="pcr-clear" value="1晴れ" type="button" aria-label="clear and close">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`ColorPicker save event should works 1`] = `
|
||||
<div tabindex="0" class="ant-color-picker">
|
||||
<div class="ant-color-picker-selection">
|
||||
<div id="color-picker-box31">
|
||||
<div class="pickr">
|
||||
|
||||
<button type="button" class="pcr-button" role="button" aria-label="toggle color picker dialog" style="color: rgb(0, 0, 0);"></button>
|
||||
|
||||
|
||||
</div>
|
||||
</div><i aria-label="icon: down" class="anticon anticon-down ant-color-picker-icon"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class="">
|
||||
<path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path>
|
||||
</svg></i>
|
||||
</div>
|
||||
<div class="pcr-app visible" data-theme="monolith" aria-label="color picker dialog" role="window" style="left: 512px; top: 384px;">
|
||||
<div class="pcr-selection">
|
||||
<div class="pcr-color-preview">
|
||||
<button type="button" class="pcr-last-color" aria-label="use previous color" style="color: rgb(0, 0, 0);"></button>
|
||||
<div class="pcr-current-color"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-palette">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-chooser">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-opacity" style="display:none" hidden="">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-swatches "></div>
|
||||
|
||||
<div class="pcr-interaction">
|
||||
<input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">
|
||||
|
||||
<input class="pcr-type active" data-type="HEXA" value="HEXA" type="button">
|
||||
<input class="pcr-type" data-type="RGBA" value="RGBA" type="button">
|
||||
<input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">
|
||||
|
||||
<input class="pcr-save" value="Save" type="button" aria-label="save and close">
|
||||
<input class="pcr-cancel" value="Cancel" type="button" style="display:none" hidden="" aria-label="cancel and close">
|
||||
<input class="pcr-clear" value="Clear" type="button" aria-label="clear and close">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`ColorPicker should support default value 1`] = `
|
||||
<div tabindex="0" class="ant-color-picker">
|
||||
<div class="ant-color-picker-selection">
|
||||
<div id="color-picker-box1">
|
||||
<div class="pickr">
|
||||
|
||||
<button type="button" class="pcr-button" role="button" aria-label="toggle color picker dialog"></button>
|
||||
|
||||
|
||||
</div>
|
||||
</div><i aria-label="icon: down" class="anticon anticon-down ant-color-picker-icon"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class="">
|
||||
<path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path>
|
||||
</svg></i>
|
||||
</div>
|
||||
<div class="pcr-app" data-theme="monolith" aria-label="color picker dialog" role="window">
|
||||
<div class="pcr-selection">
|
||||
<div class="pcr-color-preview">
|
||||
<button type="button" class="pcr-last-color" aria-label="use previous color"></button>
|
||||
<div class="pcr-current-color"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-palette">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-chooser">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-opacity" style="display:none" hidden="">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-swatches "></div>
|
||||
|
||||
<div class="pcr-interaction">
|
||||
<input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">
|
||||
|
||||
<input class="pcr-type active" data-type="HEXA" value="HEXA" type="button">
|
||||
<input class="pcr-type" data-type="RGBA" value="RGBA" type="button">
|
||||
<input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">
|
||||
|
||||
<input class="pcr-save" value="Save" type="button" aria-label="save and close">
|
||||
<input class="pcr-cancel" value="Cancel" type="button" style="display:none" hidden="" aria-label="cancel and close">
|
||||
<input class="pcr-clear" value="Clear" type="button" aria-label="clear and close">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`ColorPicker should support disabled 1`] = `
|
||||
<div tabindex="-1" class="ant-color-picker ant-color-picker-disabled">
|
||||
<div class="ant-color-picker-selection">
|
||||
<div id="color-picker-box13">
|
||||
<div class="pickr">
|
||||
|
||||
<button type="button" class="pcr-button disabled" role="button" aria-label="toggle color picker dialog"></button>
|
||||
|
||||
|
||||
</div>
|
||||
</div><i aria-label="icon: down" class="anticon anticon-down ant-color-picker-icon"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class="">
|
||||
<path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path>
|
||||
</svg></i>
|
||||
</div>
|
||||
<div class="pcr-app" data-theme="monolith" aria-label="color picker dialog" role="window">
|
||||
<div class="pcr-selection">
|
||||
<div class="pcr-color-preview">
|
||||
<button type="button" class="pcr-last-color" aria-label="use previous color"></button>
|
||||
<div class="pcr-current-color"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-palette">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-chooser">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-opacity" style="display:none" hidden="">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-swatches "></div>
|
||||
|
||||
<div class="pcr-interaction">
|
||||
<input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">
|
||||
|
||||
<input class="pcr-type active" data-type="HEXA" value="HEXA" type="button">
|
||||
<input class="pcr-type" data-type="RGBA" value="RGBA" type="button">
|
||||
<input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">
|
||||
|
||||
<input class="pcr-save" value="Save" type="button" aria-label="save and close">
|
||||
<input class="pcr-cancel" value="Cancel" type="button" style="display:none" hidden="" aria-label="cancel and close">
|
||||
<input class="pcr-clear" value="Clear" type="button" aria-label="clear and close">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`ColorPicker should support format 1`] = `
|
||||
<div tabindex="0" class="ant-color-picker ant-color-picker-open">
|
||||
<div class="ant-color-picker-selection">
|
||||
<div id="color-picker-box19">
|
||||
<div class="pickr">
|
||||
|
||||
<button type="button" class="pcr-button" role="button" aria-label="toggle color picker dialog" style="color: rgb(0, 0, 0);"></button>
|
||||
|
||||
|
||||
</div>
|
||||
</div><i aria-label="icon: down" class="anticon anticon-down ant-color-picker-icon"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class="">
|
||||
<path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path>
|
||||
</svg></i>
|
||||
</div>
|
||||
<div class="pcr-app visible" data-theme="monolith" aria-label="color picker dialog" role="window" style="left: 512px; top: 384px;">
|
||||
<div class="pcr-selection">
|
||||
<div class="pcr-color-preview">
|
||||
<button type="button" class="pcr-last-color" aria-label="use previous color" style="color: rgb(0, 0, 0);"></button>
|
||||
<div class="pcr-current-color"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-palette">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-chooser">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-opacity" style="display:none" hidden="">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-swatches "></div>
|
||||
|
||||
<div class="pcr-interaction">
|
||||
<input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">
|
||||
|
||||
<input class="pcr-type active" data-type="HEXA" value="HEXA" type="button">
|
||||
<input class="pcr-type" data-type="RGBA" value="RGBA" type="button">
|
||||
<input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">
|
||||
|
||||
<input class="pcr-save" value="Save" type="button" aria-label="save and close">
|
||||
<input class="pcr-cancel" value="Cancel" type="button" style="display:none" hidden="" aria-label="cancel and close">
|
||||
<input class="pcr-clear" value="Clear" type="button" aria-label="clear and close">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`ColorPicker should support v-model 1`] = `
|
||||
<div tabindex="0" class="ant-color-picker">
|
||||
<div class="ant-color-picker-selection">
|
||||
<div id="color-picker-box7">
|
||||
<div class="pickr">
|
||||
|
||||
<button type="button" class="pcr-button" role="button" aria-label="toggle color picker dialog"></button>
|
||||
|
||||
|
||||
</div>
|
||||
</div><i aria-label="icon: down" class="anticon anticon-down ant-color-picker-icon"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class="">
|
||||
<path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path>
|
||||
</svg></i>
|
||||
</div>
|
||||
<div class="pcr-app" data-theme="monolith" aria-label="color picker dialog" role="window">
|
||||
<div class="pcr-selection">
|
||||
<div class="pcr-color-preview">
|
||||
<button type="button" class="pcr-last-color" aria-label="use previous color"></button>
|
||||
<div class="pcr-current-color"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-palette">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-chooser">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-color-opacity" style="display:none" hidden="">
|
||||
<div class="pcr-picker"></div>
|
||||
<div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pcr-swatches "></div>
|
||||
|
||||
<div class="pcr-interaction">
|
||||
<input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">
|
||||
|
||||
<input class="pcr-type active" data-type="HEXA" value="HEXA" type="button">
|
||||
<input class="pcr-type" data-type="RGBA" value="RGBA" type="button">
|
||||
<input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
|
||||
<input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">
|
||||
|
||||
<input class="pcr-save" value="Save" type="button" aria-label="save and close">
|
||||
<input class="pcr-cancel" value="Cancel" type="button" style="display:none" hidden="" aria-label="cancel and close">
|
||||
<input class="pcr-clear" value="Clear" type="button" aria-label="clear and close">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
|
@ -1,155 +0,0 @@
|
|||
import { mount } from '@vue/test-utils';
|
||||
import ColorPicker from '..';
|
||||
import { asyncExpect } from '../../../tests/utils';
|
||||
describe('ColorPicker', () => {
|
||||
xit('should support default value', async () => {
|
||||
const wrapper = mount(
|
||||
{
|
||||
render() {
|
||||
return <ColorPicker default-value="#cd0200" getPopupContainer={p => p}></ColorPicker>;
|
||||
},
|
||||
},
|
||||
{ sync: false, attachTo: 'body' },
|
||||
);
|
||||
await asyncExpect(() => {
|
||||
expect(wrapper.html()).toMatchSnapshot();
|
||||
wrapper.unmount();
|
||||
}, 1000);
|
||||
});
|
||||
xit('should support v-model', async () => {
|
||||
let color = 'rgba(10, 10, 10, 1)';
|
||||
const wrapper = mount(
|
||||
{
|
||||
data() {
|
||||
return {
|
||||
color,
|
||||
};
|
||||
},
|
||||
render() {
|
||||
return <ColorPicker v-model={this.color} getPopupContainer={p => p}></ColorPicker>;
|
||||
},
|
||||
mounted() {
|
||||
this.color = 'rgba(110, 120, 130, 1)';
|
||||
},
|
||||
},
|
||||
{ sync: false, attachTo: 'body' },
|
||||
);
|
||||
|
||||
await asyncExpect(() => {
|
||||
expect(wrapper.html()).toMatchSnapshot();
|
||||
wrapper.unmount();
|
||||
}, 1000);
|
||||
});
|
||||
xit('should support disabled', async () => {
|
||||
const wrapper = mount(
|
||||
{
|
||||
data() {
|
||||
return {
|
||||
disabled: false,
|
||||
};
|
||||
},
|
||||
render() {
|
||||
return <ColorPicker disabled={this.disabled} getPopupContainer={p => p}></ColorPicker>;
|
||||
},
|
||||
mounted() {
|
||||
this.disabled = true;
|
||||
},
|
||||
},
|
||||
{ sync: false, attachTo: 'body' },
|
||||
);
|
||||
|
||||
await asyncExpect(async () => {
|
||||
expect(wrapper.html()).toMatchSnapshot();
|
||||
await asyncExpect(() => {
|
||||
wrapper.unmount();
|
||||
});
|
||||
}, 1000);
|
||||
});
|
||||
xit('should support format', async () => {
|
||||
const wrapper = mount(
|
||||
{
|
||||
data() {
|
||||
return {
|
||||
format: 'RGBA',
|
||||
};
|
||||
},
|
||||
render() {
|
||||
return <ColorPicker format={this.format} getPopupContainer={p => p}></ColorPicker>;
|
||||
},
|
||||
mounted() {
|
||||
this.format = 'HEX';
|
||||
},
|
||||
},
|
||||
{ sync: false, attachTo: 'body' },
|
||||
);
|
||||
|
||||
await asyncExpect(async () => {
|
||||
expect(wrapper.html()).toMatchSnapshot();
|
||||
await asyncExpect(() => {
|
||||
wrapper.unmount();
|
||||
});
|
||||
}, 1000);
|
||||
});
|
||||
xit('prop locale should works', async () => {
|
||||
const wrapper = mount(
|
||||
{
|
||||
data() {
|
||||
return {
|
||||
locale: {
|
||||
lang: {
|
||||
'btn:save': 'セーブ',
|
||||
'btn:cancel': 'キャンセル',
|
||||
'btn:clear': '晴れ',
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
render() {
|
||||
return (
|
||||
<ColorPicker default-value="#cd0200" locale={this.locale} getPopupContainer={p => p} />
|
||||
);
|
||||
},
|
||||
mounted() {
|
||||
this.locale = {
|
||||
lang: {
|
||||
'btn:save': '1セーブ',
|
||||
'btn:cancel': '1キャンセル',
|
||||
'btn:clear': '1晴れ',
|
||||
},
|
||||
};
|
||||
},
|
||||
},
|
||||
{ sync: false, attachTo: 'body' },
|
||||
);
|
||||
await asyncExpect(async () => {
|
||||
expect(wrapper.html()).toMatchSnapshot();
|
||||
await asyncExpect(() => {
|
||||
wrapper.unmount();
|
||||
});
|
||||
}, 1000);
|
||||
});
|
||||
xit('save event should works', async () => {
|
||||
const wrapper = mount(
|
||||
{
|
||||
render() {
|
||||
return (
|
||||
<ColorPicker default-value="#cd0200" getPopupContainer={p => p} onSave={this.save} />
|
||||
);
|
||||
},
|
||||
methods: {
|
||||
save(val) {
|
||||
return val;
|
||||
},
|
||||
},
|
||||
},
|
||||
{ sync: false, attachTo: 'body' },
|
||||
);
|
||||
await asyncExpect(async () => {
|
||||
wrapper.find('.pcr-save').trigger('click');
|
||||
expect(wrapper.html()).toMatchSnapshot();
|
||||
await asyncExpect(() => {
|
||||
wrapper.unmount();
|
||||
});
|
||||
}, 1000);
|
||||
});
|
||||
});
|
|
@ -1,24 +0,0 @@
|
|||
<cn>
|
||||
#### 透明度
|
||||
开启属性 `alpha`,可以选择带 Alpha 通道的颜色。
|
||||
</cn>
|
||||
|
||||
<us>
|
||||
#### Alpha
|
||||
Set the property `alpha` true, to select a color with alpha channel.
|
||||
</us>
|
||||
|
||||
```vue
|
||||
<template>
|
||||
<a-color-picker v-model="color" :alpha="true" />
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
color: '#1890ff',
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
```
|
|
@ -1,34 +0,0 @@
|
|||
<cn>
|
||||
#### 基础用法
|
||||
基本用法,可以使用 v-model 实现数据的双向绑定。
|
||||
</cn>
|
||||
|
||||
<us>
|
||||
#### Basic
|
||||
Basic usage. You can use v-model to enable a two-way bingding on data.
|
||||
</us>
|
||||
|
||||
```vue
|
||||
<template>
|
||||
<a-row>
|
||||
<a-col span="12">
|
||||
有默认值
|
||||
<a-colorPicker v-model="color1" />
|
||||
</a-col>
|
||||
<a-col span="12">
|
||||
无默认值
|
||||
<a-colorPicker v-model="color2" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
color1: '#1890ff',
|
||||
color2: '',
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
```
|
|
@ -1,44 +0,0 @@
|
|||
<cn>
|
||||
#### 颜色预设
|
||||
可以通过`config.swatches`设置,来自定义预设颜色
|
||||
<a target="_block" href="https://github.com/Simonwep/pickr">更多配置</a>
|
||||
</cn>
|
||||
|
||||
<us>
|
||||
#### Color Presets
|
||||
Set `config.swatches ` to customize the default color presets.
|
||||
<a target="_block" href="https://github.com/Simonwep/pickr">More config settings</a>
|
||||
</us>
|
||||
|
||||
```vue
|
||||
<template>
|
||||
<a-color-picker v-model="color" :config="config" />
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
color: '#1890ff',
|
||||
config: {
|
||||
swatches: [
|
||||
'rgba(244, 67, 54, 1)',
|
||||
'rgba(233, 30, 99, 0.95)',
|
||||
'rgba(156, 39, 176, 0.9)',
|
||||
'rgba(103, 58, 183, 0.85)',
|
||||
'rgba(63, 81, 181, 0.8)',
|
||||
'rgba(33, 150, 243, 0.75)',
|
||||
'rgba(3, 169, 244, 0.7)',
|
||||
'rgba(0, 188, 212, 0.7)',
|
||||
'rgba(0, 150, 136, 0.75)',
|
||||
'rgba(76, 175, 80, 0.8)',
|
||||
'rgba(139, 195, 74, 0.85)',
|
||||
'rgba(205, 220, 57, 0.9)',
|
||||
'rgba(255, 235, 59, 0.95)',
|
||||
'rgba(255, 193, 7, 1)',
|
||||
],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
```
|
|
@ -1,24 +0,0 @@
|
|||
<cn>
|
||||
#### 色彩
|
||||
设置属性 `hue` 为 false,可以禁用色彩选项。
|
||||
</cn>
|
||||
|
||||
<us>
|
||||
#### Hue
|
||||
Set property `hue` to false, can hide hue slider.
|
||||
</us>
|
||||
|
||||
```vue
|
||||
<template>
|
||||
<a-color-picker v-model="color" :hue="false" />
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
color: '#1890ff',
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
```
|
|
@ -1,36 +0,0 @@
|
|||
<cn>
|
||||
#### 尺寸
|
||||
选择器有三种尺寸:大、默认(中)、小。
|
||||
</cn>
|
||||
|
||||
<us>
|
||||
#### Size
|
||||
There are three size of ColorPicker: large, medium(default), small.
|
||||
</us>
|
||||
|
||||
```vue
|
||||
<template>
|
||||
<div>
|
||||
<a-row>
|
||||
<a-col span="8">
|
||||
<a-colorPicker v-model="color6" size="large" />
|
||||
</a-col>
|
||||
<a-col span="8">
|
||||
<a-colorPicker v-model="color6" />
|
||||
</a-col>
|
||||
<a-col span="8">
|
||||
<a-colorPicker v-model="color6" size="small" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
color6: '#1890ff',
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
```
|
|
@ -1,27 +0,0 @@
|
|||
## API
|
||||
|
||||
| Property | Description | Type | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| colorRounded | precision of color | number | 0 |
|
||||
| config | pickr config | [pickr options](https://github.com/Simonwep/pickr) | - |
|
||||
| defaultValue | default color | string | - |
|
||||
| disabled | whether disabled picker | boolean | false |
|
||||
| format | Color format | 'HEXA' \|'RGBA' \|'HSVA' \|'HSLA' \|'CMYK' | 'HEXA' |
|
||||
| getPopupContainer | to set the container of the floating layer, while the default is to create a div element in body | Function(triggerNode) | () => document.body |
|
||||
| locale | locale package | [default setting](https://github.com/vueComponent/ant-design-vue/blob/main/components/color-picker/locale) | - |
|
||||
| size | size of pickr | 'large'\|'small'\|'default' | 'default' |
|
||||
| value | color value | string | - |
|
||||
|
||||
### Event
|
||||
|
||||
| Event | Description | Arguments |
|
||||
| --- | --- | --- |
|
||||
| `cancel` | User clicked the cancel button (return to previous color). | `PickrInstance` |
|
||||
| `change` | Color has changed (but not saved). Also fired on `swatchselect` | `HSVaColorObject, PickrInstance` |
|
||||
| `changestop` | User stopped to change the color | `PickrInstance` |
|
||||
| `clear` | User cleared the color. | `PickrInstance` |
|
||||
| `hide` | Pickr got closed | `PickrInstance` |
|
||||
| `init` | Initialization done - pickr can be used | `PickrInstance` |
|
||||
| `save` | User clicked the save / clear button. Also fired on clear with `null` as color. | `HSVaColorObject or null, PickrInstance` |
|
||||
| `show` | Pickr got opened | `PickrInstance` |
|
||||
| `swatchselect` | User clicked one of the swatches | `HSVaColorObject, PickrInstance` |
|
|
@ -1,8 +0,0 @@
|
|||
import ColorPicker from './ColorPicker';
|
||||
/* istanbul ignore next */
|
||||
ColorPicker.install = function (app) {
|
||||
app.component(ColorPicker.name, ColorPicker);
|
||||
return app;
|
||||
};
|
||||
|
||||
export default ColorPicker;
|
|
@ -1,27 +0,0 @@
|
|||
## API
|
||||
|
||||
| 参数 | 说明 | 类型 | 默认值 |
|
||||
| --- | --- | --- | --- |
|
||||
| colorRounded | 颜色数值精度 | number | 0 |
|
||||
| config | pickr 配置项 | [pickr options](https://github.com/Simonwep/pickr) | - |
|
||||
| defaultValue | 默认颜色 | string | - |
|
||||
| disabled | 是否禁用 | boolean | false |
|
||||
| format | 定义返回的颜色格式 | 'HEXA' \|'RGBA' \|'HSVA' \|'HSLA' \|'CMYK' | 'HEXA' |
|
||||
| getPopupContainer | 浮层渲染父节点,默认渲染到 body 上 | Function(triggerNode) | () => document.body |
|
||||
| locale | 语言包 | [默认配置](https://github.com/vueComponent/ant-design-vue/blob/main/components/color-picker/locale) | - |
|
||||
| size | 取色器尺寸 | 'large'\|'small'\|'default' | 'default' |
|
||||
| value | 颜色值 | string | - |
|
||||
|
||||
### 事件
|
||||
|
||||
| 事件名称 | 说明 | 回调参数 |
|
||||
| --- | --- | --- |
|
||||
| `cancel` | 用户点击取消时(颜色返回至上个颜色) | `PickrInstance` |
|
||||
| `change` | 颜色值发生变更时(非保存).`swatchselect`也会触发 | `HSVaColorObject, PickrInstance` |
|
||||
| `changestop` | 用户不再改变颜色时 | `PickrInstance` |
|
||||
| `clear` | 清空颜色时 | `PickrInstance` |
|
||||
| `hide` | Pickr 关闭时 | `PickrInstance` |
|
||||
| `init` | 初始化完成,可以使用 pickr | `PickrInstance` |
|
||||
| `save` | 用户点击保存/清空按钮时 | `HSVaColorObject or null, PickrInstance` |
|
||||
| `show` | Pickr 开启时 | `PickrInstance` |
|
||||
| `swatchselect` | 用户切换了色板 | `HSVaColorObject, PickrInstance` |
|
|
@ -1,5 +0,0 @@
|
|||
export default {
|
||||
'btn:save': 'Save',
|
||||
'btn:cancel': 'Cancel',
|
||||
'btn:clear': 'Clear',
|
||||
};
|
|
@ -1,5 +0,0 @@
|
|||
export default {
|
||||
'btn:save': 'پاشکەوت کردن',
|
||||
'btn:cancel': 'هەڵوەشاندنەوە',
|
||||
'btn:clear': 'پاککردنەوە',
|
||||
};
|
|
@ -1,5 +0,0 @@
|
|||
export default {
|
||||
'btn:save': '保存',
|
||||
'btn:cancel': '取消',
|
||||
'btn:clear': '清除',
|
||||
};
|
|
@ -1,5 +0,0 @@
|
|||
export default {
|
||||
'btn:save': '保存',
|
||||
'btn:cancel': '取消',
|
||||
'btn:clear': '清除',
|
||||
};
|
|
@ -1,2 +0,0 @@
|
|||
// TODO
|
||||
import '../../style/index.less';
|
|
@ -155,3 +155,11 @@ export const defaultConfigProvider: ConfigProviderInnerProps = {
|
|||
},
|
||||
iconPrefixCls: computed(() => defaultIconPrefixCls),
|
||||
};
|
||||
|
||||
export const useConfigContextInject = () => {
|
||||
return inject(configProviderKey, defaultConfigProvider);
|
||||
};
|
||||
|
||||
export const useConfigContextProvider = (props: ConfigProviderInnerProps) => {
|
||||
return provide(configProviderKey, props);
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import type { App, Plugin, WatchStopHandle } from 'vue';
|
||||
import { inject, computed, reactive, provide, defineComponent, watchEffect } from 'vue';
|
||||
import { computed, reactive, defineComponent, watchEffect } from 'vue';
|
||||
import defaultRenderEmpty from './renderEmpty';
|
||||
import type { RenderEmptyHandler } from './renderEmpty';
|
||||
import type { Locale } from '../locale-provider';
|
||||
|
@ -15,16 +15,20 @@ import defaultLocale from '../locale/en_US';
|
|||
import type { ValidateMessages } from '../form/interface';
|
||||
import useStyle from './style';
|
||||
import useTheme from './hooks/useTheme';
|
||||
import defaultSeedToken from '../theme/themes/seed';
|
||||
import type { ConfigProviderInnerProps, ConfigProviderProps, Theme } from './context';
|
||||
import {
|
||||
defaultConfigProvider,
|
||||
configProviderKey,
|
||||
useConfigContextProvider,
|
||||
useConfigContextInject,
|
||||
configProviderProps,
|
||||
useProvideGlobalForm,
|
||||
defaultIconPrefixCls,
|
||||
} from './context';
|
||||
import { useProviderSize } from './SizeContext';
|
||||
import { useProviderDisabled } from './DisabledContext';
|
||||
import { createTheme } from '../_util/cssinjs';
|
||||
import { useDesignTokenProvider } from '../theme/internal';
|
||||
import { toReactive } from '../_util/toReactive';
|
||||
|
||||
export type {
|
||||
ConfigProviderProps,
|
||||
|
@ -124,7 +128,7 @@ const ConfigProvider = defineComponent({
|
|||
inheritAttrs: false,
|
||||
props: configProviderProps(),
|
||||
setup(props, { slots }) {
|
||||
const parentContext = inject(configProviderKey, defaultConfigProvider);
|
||||
const parentContext = useConfigContextInject();
|
||||
const getPrefixCls = (suffixCls?: string, customizePrefixCls?: string) => {
|
||||
const { prefixCls = 'ant' } = props;
|
||||
if (customizePrefixCls) return customizePrefixCls;
|
||||
|
@ -210,6 +214,26 @@ const ConfigProvider = defineComponent({
|
|||
componentDisabled,
|
||||
transformCellText: computed(() => props.transformCellText),
|
||||
};
|
||||
|
||||
// ================================ Dynamic theme ================================
|
||||
const memoTheme = computed(() => {
|
||||
const { algorithm, token, ...rest } = mergedTheme.value || {};
|
||||
const themeObj =
|
||||
algorithm && (!Array.isArray(algorithm) || algorithm.length > 0)
|
||||
? createTheme(algorithm)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
...rest,
|
||||
theme: themeObj,
|
||||
|
||||
token: {
|
||||
...defaultSeedToken,
|
||||
...token,
|
||||
},
|
||||
};
|
||||
});
|
||||
useDesignTokenProvider(toReactive(memoTheme));
|
||||
const validateMessagesRef = computed(() => {
|
||||
// Additional Form provider
|
||||
let validateMessages: ValidateMessages = {};
|
||||
|
@ -225,8 +249,7 @@ const ConfigProvider = defineComponent({
|
|||
}
|
||||
return validateMessages;
|
||||
});
|
||||
|
||||
provide(configProviderKey, configProvider);
|
||||
useConfigContextProvider(configProvider);
|
||||
useProvideGlobalForm({ validateMessages: validateMessagesRef });
|
||||
useProviderSize(componentSize);
|
||||
useProviderDisabled(componentDisabled);
|
||||
|
|
|
@ -434,12 +434,12 @@ const getBaseStyle: GenerateStyle<MenuToken> = token => {
|
|||
};
|
||||
|
||||
// ============================== Export ==============================
|
||||
export default (prefixCls: Ref<string>, injectStyle: Ref<boolean>): UseComponentStyleResult => {
|
||||
export default (prefixCls: Ref<string>, injectStyle?: Ref<boolean>): UseComponentStyleResult => {
|
||||
const useOriginHook = genComponentStyleHook(
|
||||
'Menu',
|
||||
(token, { overrideComponentToken }) => {
|
||||
// Dropdown will handle menu style self. We do not need to handle this.
|
||||
if (injectStyle.value === false) {
|
||||
if (injectStyle?.value === false) {
|
||||
return [];
|
||||
}
|
||||
|
||||
|
|
|
@ -1,110 +0,0 @@
|
|||
/* stylelint-disable */
|
||||
.bezierEasingMixin() {
|
||||
@functions: ~`(function() {
|
||||
var NEWTON_ITERATIONS = 4;
|
||||
var NEWTON_MIN_SLOPE = 0.001;
|
||||
var SUBDIVISION_PRECISION = 0.0000001;
|
||||
var SUBDIVISION_MAX_ITERATIONS = 10;
|
||||
|
||||
var kSplineTableSize = 11;
|
||||
var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);
|
||||
|
||||
var float32ArraySupported = typeof Float32Array === 'function';
|
||||
|
||||
function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }
|
||||
function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }
|
||||
function C (aA1) { return 3.0 * aA1; }
|
||||
|
||||
// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.
|
||||
function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; }
|
||||
|
||||
// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.
|
||||
function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); }
|
||||
|
||||
function binarySubdivide (aX, aA, aB, mX1, mX2) {
|
||||
var currentX, currentT, i = 0;
|
||||
do {
|
||||
currentT = aA + (aB - aA) / 2.0;
|
||||
currentX = calcBezier(currentT, mX1, mX2) - aX;
|
||||
if (currentX > 0.0) {
|
||||
aB = currentT;
|
||||
} else {
|
||||
aA = currentT;
|
||||
}
|
||||
} while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
|
||||
return currentT;
|
||||
}
|
||||
|
||||
function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {
|
||||
for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
|
||||
var currentSlope = getSlope(aGuessT, mX1, mX2);
|
||||
if (currentSlope === 0.0) {
|
||||
return aGuessT;
|
||||
}
|
||||
var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
|
||||
aGuessT -= currentX / currentSlope;
|
||||
}
|
||||
return aGuessT;
|
||||
}
|
||||
|
||||
var BezierEasing = function (mX1, mY1, mX2, mY2) {
|
||||
if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {
|
||||
throw new Error('bezier x values must be in [0, 1] range');
|
||||
}
|
||||
|
||||
// Precompute samples table
|
||||
var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
|
||||
if (mX1 !== mY1 || mX2 !== mY2) {
|
||||
for (var i = 0; i < kSplineTableSize; ++i) {
|
||||
sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
|
||||
}
|
||||
}
|
||||
|
||||
function getTForX (aX) {
|
||||
var intervalStart = 0.0;
|
||||
var currentSample = 1;
|
||||
var lastSample = kSplineTableSize - 1;
|
||||
|
||||
for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
|
||||
intervalStart += kSampleStepSize;
|
||||
}
|
||||
--currentSample;
|
||||
|
||||
// Interpolate to provide an initial guess for t
|
||||
var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
|
||||
var guessForT = intervalStart + dist * kSampleStepSize;
|
||||
|
||||
var initialSlope = getSlope(guessForT, mX1, mX2);
|
||||
if (initialSlope >= NEWTON_MIN_SLOPE) {
|
||||
return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
|
||||
} else if (initialSlope === 0.0) {
|
||||
return guessForT;
|
||||
} else {
|
||||
return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
|
||||
}
|
||||
}
|
||||
|
||||
return function BezierEasing (x) {
|
||||
if (mX1 === mY1 && mX2 === mY2) {
|
||||
return x; // linear
|
||||
}
|
||||
// Because JavaScript number are imprecise, we should guarantee the extremes are right.
|
||||
if (x === 0) {
|
||||
return 0;
|
||||
}
|
||||
if (x === 1) {
|
||||
return 1;
|
||||
}
|
||||
return calcBezier(getTForX(x), mY1, mY2);
|
||||
};
|
||||
};
|
||||
|
||||
this.colorEasing = BezierEasing(0.26, 0.09, 0.37, 0.18);
|
||||
// less 3 requires a return
|
||||
return '';
|
||||
})()`;
|
||||
}
|
||||
// It is hacky way to make this function will be compiled preferentially by less
|
||||
// resolve error: `ReferenceError: colorPalette is not defined`
|
||||
// https://github.com/ant-design/ant-motion/issues/44
|
||||
.bezierEasingMixin();
|
|
@ -1,81 +0,0 @@
|
|||
/* stylelint-disable no-duplicate-selectors */
|
||||
@import "bezierEasing";
|
||||
@import "tinyColor";
|
||||
|
||||
// We create a very complex algorithm which take the place of original tint/shade color system
|
||||
// to make sure no one can understand it 👻
|
||||
// and create an entire color palette magicly by inputing just a single primary color.
|
||||
// We are using bezier-curve easing function and some color manipulations like tint/shade/darken/spin
|
||||
.colorPaletteMixin() {
|
||||
@functions: ~`(function() {
|
||||
var hueStep = 2;
|
||||
var saturationStep = 0.16;
|
||||
var saturationStep2 = 0.05;
|
||||
var brightnessStep1 = 0.05;
|
||||
var brightnessStep2 = 0.15;
|
||||
var lightColorCount = 5;
|
||||
var darkColorCount = 4;
|
||||
|
||||
var getHue = function(hsv, i, isLight) {
|
||||
var hue;
|
||||
if (hsv.h >= 60 && hsv.h <= 240) {
|
||||
hue = isLight ? hsv.h - hueStep * i : hsv.h + hueStep * i;
|
||||
} else {
|
||||
hue = isLight ? hsv.h + hueStep * i : hsv.h - hueStep * i;
|
||||
}
|
||||
if (hue < 0) {
|
||||
hue += 360;
|
||||
} else if (hue >= 360) {
|
||||
hue -= 360;
|
||||
}
|
||||
return Math.round(hue);
|
||||
};
|
||||
var getSaturation = function(hsv, i, isLight) {
|
||||
var saturation;
|
||||
if (isLight) {
|
||||
saturation = hsv.s - saturationStep * i;
|
||||
} else if (i === darkColorCount) {
|
||||
saturation = hsv.s + saturationStep;
|
||||
} else {
|
||||
saturation = hsv.s + saturationStep2 * i;
|
||||
}
|
||||
if (saturation > 1) {
|
||||
saturation = 1;
|
||||
}
|
||||
if (isLight && i === lightColorCount && saturation > 0.1) {
|
||||
saturation = 0.1;
|
||||
}
|
||||
if (saturation < 0.06) {
|
||||
saturation = 0.06;
|
||||
}
|
||||
return Number(saturation.toFixed(2));
|
||||
};
|
||||
var getValue = function(hsv, i, isLight) {
|
||||
var value;
|
||||
if (isLight) {
|
||||
value = hsv.v + brightnessStep1 * i;
|
||||
}else{
|
||||
value = hsv.v - brightnessStep2 * i
|
||||
}
|
||||
if (value > 1) {
|
||||
value = 1;
|
||||
}
|
||||
return Number(value.toFixed(2))
|
||||
};
|
||||
|
||||
this.colorPalette = function(color, index) {
|
||||
var isLight = index <= 6;
|
||||
var hsv = tinycolor(color).toHsv();
|
||||
var i = isLight ? lightColorCount + 1 - index : index - lightColorCount - 1;
|
||||
return tinycolor({
|
||||
h: getHue(hsv, i, isLight),
|
||||
s: getSaturation(hsv, i, isLight),
|
||||
v: getValue(hsv, i, isLight),
|
||||
}).toHexString();
|
||||
};
|
||||
})()`;
|
||||
}
|
||||
// It is hacky way to make this function will be compiled preferentially by less
|
||||
// resolve error: `ReferenceError: colorPalette is not defined`
|
||||
// https://github.com/ant-design/ant-motion/issues/44
|
||||
.colorPaletteMixin();
|
|
@ -1,162 +0,0 @@
|
|||
@import 'colorPalette';
|
||||
|
||||
// color palettes
|
||||
@blue-base: #1890ff;
|
||||
@blue-1: color(~`colorPalette('@{blue-6}', 1) `);
|
||||
@blue-2: color(~`colorPalette('@{blue-6}', 2) `);
|
||||
@blue-3: color(~`colorPalette('@{blue-6}', 3) `);
|
||||
@blue-4: color(~`colorPalette('@{blue-6}', 4) `);
|
||||
@blue-5: color(~`colorPalette('@{blue-6}', 5) `);
|
||||
@blue-6: @blue-base;
|
||||
@blue-7: color(~`colorPalette('@{blue-6}', 7) `);
|
||||
@blue-8: color(~`colorPalette('@{blue-6}', 8) `);
|
||||
@blue-9: color(~`colorPalette('@{blue-6}', 9) `);
|
||||
@blue-10: color(~`colorPalette('@{blue-6}', 10) `);
|
||||
|
||||
@purple-base: #722ed1;
|
||||
@purple-1: color(~`colorPalette('@{purple-6}', 1) `);
|
||||
@purple-2: color(~`colorPalette('@{purple-6}', 2) `);
|
||||
@purple-3: color(~`colorPalette('@{purple-6}', 3) `);
|
||||
@purple-4: color(~`colorPalette('@{purple-6}', 4) `);
|
||||
@purple-5: color(~`colorPalette('@{purple-6}', 5) `);
|
||||
@purple-6: @purple-base;
|
||||
@purple-7: color(~`colorPalette('@{purple-6}', 7) `);
|
||||
@purple-8: color(~`colorPalette('@{purple-6}', 8) `);
|
||||
@purple-9: color(~`colorPalette('@{purple-6}', 9) `);
|
||||
@purple-10: color(~`colorPalette('@{purple-6}', 10) `);
|
||||
|
||||
@cyan-base: #13c2c2;
|
||||
@cyan-1: color(~`colorPalette('@{cyan-6}', 1) `);
|
||||
@cyan-2: color(~`colorPalette('@{cyan-6}', 2) `);
|
||||
@cyan-3: color(~`colorPalette('@{cyan-6}', 3) `);
|
||||
@cyan-4: color(~`colorPalette('@{cyan-6}', 4) `);
|
||||
@cyan-5: color(~`colorPalette('@{cyan-6}', 5) `);
|
||||
@cyan-6: @cyan-base;
|
||||
@cyan-7: color(~`colorPalette('@{cyan-6}', 7) `);
|
||||
@cyan-8: color(~`colorPalette('@{cyan-6}', 8) `);
|
||||
@cyan-9: color(~`colorPalette('@{cyan-6}', 9) `);
|
||||
@cyan-10: color(~`colorPalette('@{cyan-6}', 10) `);
|
||||
|
||||
@green-base: #52c41a;
|
||||
@green-1: color(~`colorPalette('@{green-6}', 1) `);
|
||||
@green-2: color(~`colorPalette('@{green-6}', 2) `);
|
||||
@green-3: color(~`colorPalette('@{green-6}', 3) `);
|
||||
@green-4: color(~`colorPalette('@{green-6}', 4) `);
|
||||
@green-5: color(~`colorPalette('@{green-6}', 5) `);
|
||||
@green-6: @green-base;
|
||||
@green-7: color(~`colorPalette('@{green-6}', 7) `);
|
||||
@green-8: color(~`colorPalette('@{green-6}', 8) `);
|
||||
@green-9: color(~`colorPalette('@{green-6}', 9) `);
|
||||
@green-10: color(~`colorPalette('@{green-6}', 10) `);
|
||||
|
||||
@magenta-base: #eb2f96;
|
||||
@magenta-1: color(~`colorPalette('@{magenta-6}', 1) `);
|
||||
@magenta-2: color(~`colorPalette('@{magenta-6}', 2) `);
|
||||
@magenta-3: color(~`colorPalette('@{magenta-6}', 3) `);
|
||||
@magenta-4: color(~`colorPalette('@{magenta-6}', 4) `);
|
||||
@magenta-5: color(~`colorPalette('@{magenta-6}', 5) `);
|
||||
@magenta-6: @magenta-base;
|
||||
@magenta-7: color(~`colorPalette('@{magenta-6}', 7) `);
|
||||
@magenta-8: color(~`colorPalette('@{magenta-6}', 8) `);
|
||||
@magenta-9: color(~`colorPalette('@{magenta-6}', 9) `);
|
||||
@magenta-10: color(~`colorPalette('@{magenta-6}', 10) `);
|
||||
|
||||
// alias of magenta
|
||||
@pink-base: #eb2f96;
|
||||
@pink-1: color(~`colorPalette('@{pink-6}', 1) `);
|
||||
@pink-2: color(~`colorPalette('@{pink-6}', 2) `);
|
||||
@pink-3: color(~`colorPalette('@{pink-6}', 3) `);
|
||||
@pink-4: color(~`colorPalette('@{pink-6}', 4) `);
|
||||
@pink-5: color(~`colorPalette('@{pink-6}', 5) `);
|
||||
@pink-6: @pink-base;
|
||||
@pink-7: color(~`colorPalette('@{pink-6}', 7) `);
|
||||
@pink-8: color(~`colorPalette('@{pink-6}', 8) `);
|
||||
@pink-9: color(~`colorPalette('@{pink-6}', 9) `);
|
||||
@pink-10: color(~`colorPalette('@{pink-6}', 10) `);
|
||||
|
||||
@red-base: #f5222d;
|
||||
@red-1: color(~`colorPalette('@{red-6}', 1) `);
|
||||
@red-2: color(~`colorPalette('@{red-6}', 2) `);
|
||||
@red-3: color(~`colorPalette('@{red-6}', 3) `);
|
||||
@red-4: color(~`colorPalette('@{red-6}', 4) `);
|
||||
@red-5: color(~`colorPalette('@{red-6}', 5) `);
|
||||
@red-6: @red-base;
|
||||
@red-7: color(~`colorPalette('@{red-6}', 7) `);
|
||||
@red-8: color(~`colorPalette('@{red-6}', 8) `);
|
||||
@red-9: color(~`colorPalette('@{red-6}', 9) `);
|
||||
@red-10: color(~`colorPalette('@{red-6}', 10) `);
|
||||
|
||||
@orange-base: #fa8c16;
|
||||
@orange-1: color(~`colorPalette('@{orange-6}', 1) `);
|
||||
@orange-2: color(~`colorPalette('@{orange-6}', 2) `);
|
||||
@orange-3: color(~`colorPalette('@{orange-6}', 3) `);
|
||||
@orange-4: color(~`colorPalette('@{orange-6}', 4) `);
|
||||
@orange-5: color(~`colorPalette('@{orange-6}', 5) `);
|
||||
@orange-6: @orange-base;
|
||||
@orange-7: color(~`colorPalette('@{orange-6}', 7) `);
|
||||
@orange-8: color(~`colorPalette('@{orange-6}', 8) `);
|
||||
@orange-9: color(~`colorPalette('@{orange-6}', 9) `);
|
||||
@orange-10: color(~`colorPalette('@{orange-6}', 10) `);
|
||||
|
||||
@yellow-base: #fadb14;
|
||||
@yellow-1: color(~`colorPalette('@{yellow-6}', 1) `);
|
||||
@yellow-2: color(~`colorPalette('@{yellow-6}', 2) `);
|
||||
@yellow-3: color(~`colorPalette('@{yellow-6}', 3) `);
|
||||
@yellow-4: color(~`colorPalette('@{yellow-6}', 4) `);
|
||||
@yellow-5: color(~`colorPalette('@{yellow-6}', 5) `);
|
||||
@yellow-6: @yellow-base;
|
||||
@yellow-7: color(~`colorPalette('@{yellow-6}', 7) `);
|
||||
@yellow-8: color(~`colorPalette('@{yellow-6}', 8) `);
|
||||
@yellow-9: color(~`colorPalette('@{yellow-6}', 9) `);
|
||||
@yellow-10: color(~`colorPalette('@{yellow-6}', 10) `);
|
||||
|
||||
@volcano-base: #fa541c;
|
||||
@volcano-1: color(~`colorPalette('@{volcano-6}', 1) `);
|
||||
@volcano-2: color(~`colorPalette('@{volcano-6}', 2) `);
|
||||
@volcano-3: color(~`colorPalette('@{volcano-6}', 3) `);
|
||||
@volcano-4: color(~`colorPalette('@{volcano-6}', 4) `);
|
||||
@volcano-5: color(~`colorPalette('@{volcano-6}', 5) `);
|
||||
@volcano-6: @volcano-base;
|
||||
@volcano-7: color(~`colorPalette('@{volcano-6}', 7) `);
|
||||
@volcano-8: color(~`colorPalette('@{volcano-6}', 8) `);
|
||||
@volcano-9: color(~`colorPalette('@{volcano-6}', 9) `);
|
||||
@volcano-10: color(~`colorPalette('@{volcano-6}', 10) `);
|
||||
|
||||
@geekblue-base: #2f54eb;
|
||||
@geekblue-1: color(~`colorPalette('@{geekblue-6}', 1) `);
|
||||
@geekblue-2: color(~`colorPalette('@{geekblue-6}', 2) `);
|
||||
@geekblue-3: color(~`colorPalette('@{geekblue-6}', 3) `);
|
||||
@geekblue-4: color(~`colorPalette('@{geekblue-6}', 4) `);
|
||||
@geekblue-5: color(~`colorPalette('@{geekblue-6}', 5) `);
|
||||
@geekblue-6: @geekblue-base;
|
||||
@geekblue-7: color(~`colorPalette('@{geekblue-6}', 7) `);
|
||||
@geekblue-8: color(~`colorPalette('@{geekblue-6}', 8) `);
|
||||
@geekblue-9: color(~`colorPalette('@{geekblue-6}', 9) `);
|
||||
@geekblue-10: color(~`colorPalette('@{geekblue-6}', 10) `);
|
||||
|
||||
@lime-base: #a0d911;
|
||||
@lime-1: color(~`colorPalette('@{lime-6}', 1) `);
|
||||
@lime-2: color(~`colorPalette('@{lime-6}', 2) `);
|
||||
@lime-3: color(~`colorPalette('@{lime-6}', 3) `);
|
||||
@lime-4: color(~`colorPalette('@{lime-6}', 4) `);
|
||||
@lime-5: color(~`colorPalette('@{lime-6}', 5) `);
|
||||
@lime-6: @lime-base;
|
||||
@lime-7: color(~`colorPalette('@{lime-6}', 7) `);
|
||||
@lime-8: color(~`colorPalette('@{lime-6}', 8) `);
|
||||
@lime-9: color(~`colorPalette('@{lime-6}', 9) `);
|
||||
@lime-10: color(~`colorPalette('@{lime-6}', 10) `);
|
||||
|
||||
@gold-base: #faad14;
|
||||
@gold-1: color(~`colorPalette('@{gold-6}', 1) `);
|
||||
@gold-2: color(~`colorPalette('@{gold-6}', 2) `);
|
||||
@gold-3: color(~`colorPalette('@{gold-6}', 3) `);
|
||||
@gold-4: color(~`colorPalette('@{gold-6}', 4) `);
|
||||
@gold-5: color(~`colorPalette('@{gold-6}', 5) `);
|
||||
@gold-6: @gold-base;
|
||||
@gold-7: color(~`colorPalette('@{gold-6}', 7) `);
|
||||
@gold-8: color(~`colorPalette('@{gold-6}', 8) `);
|
||||
@gold-9: color(~`colorPalette('@{gold-6}', 9) `);
|
||||
@gold-10: color(~`colorPalette('@{gold-6}', 10) `);
|
||||
|
||||
@preset-colors: pink, magenta, red, volcano, orange, yellow, gold, cyan, lime, green, blue, geekblue,
|
||||
purple;
|
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +0,0 @@
|
|||
@root-entry-name: default;
|
||||
|
||||
@import './themes/compact.less';
|
||||
@import './core/index';
|
|
@ -1,10 +0,0 @@
|
|||
// Config global less under antd
|
||||
[class^=~'@{ant-prefix}-'],
|
||||
[class*=~' @{ant-prefix}-'] {
|
||||
// remove the clear button of a text input control in IE10+
|
||||
&::-ms-clear,
|
||||
input::-ms-clear,
|
||||
input::-ms-reveal {
|
||||
display: none;
|
||||
}
|
||||
}
|
|
@ -1,491 +0,0 @@
|
|||
/* stylelint-disable property-no-vendor-prefix, at-rule-no-vendor-prefix */
|
||||
|
||||
// Reboot
|
||||
//
|
||||
// Normalization of HTML elements, manually forked from Normalize.css to remove
|
||||
// styles targeting irrelevant browsers while applying new styles.
|
||||
//
|
||||
// Normalize is licensed MIT. https://github.com/necolas/normalize.css
|
||||
|
||||
// HTML & Body reset
|
||||
@{html-selector},
|
||||
body {
|
||||
.square(100%);
|
||||
}
|
||||
|
||||
// remove the clear button of a text input control in IE10+
|
||||
input::-ms-clear,
|
||||
input::-ms-reveal {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// Document
|
||||
//
|
||||
// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.
|
||||
// 2. Change the default font family in all browsers.
|
||||
// 3. Correct the line height in all browsers.
|
||||
// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.
|
||||
// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so
|
||||
// we force a non-overlapping, non-auto-hiding scrollbar to counteract.
|
||||
// 6. Change the default tap highlight to be completely transparent in iOS.
|
||||
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box; // 1
|
||||
}
|
||||
|
||||
@{html-selector} {
|
||||
font-family: sans-serif; // 2
|
||||
line-height: 1.15; // 3
|
||||
-webkit-text-size-adjust: 100%; // 4
|
||||
-ms-text-size-adjust: 100%; // 4
|
||||
-ms-overflow-style: scrollbar; // 5
|
||||
-webkit-tap-highlight-color: fade(@black, 0%); // 6
|
||||
}
|
||||
|
||||
// IE10+ doesn't honor `<meta name="viewport">` in some cases.
|
||||
@-ms-viewport {
|
||||
width: device-width;
|
||||
}
|
||||
|
||||
// Body
|
||||
//
|
||||
// 1. remove the margin in all browsers.
|
||||
// 2. As a best practice, apply a default `body-background`.
|
||||
|
||||
body {
|
||||
margin: 0; // 1
|
||||
color: @text-color;
|
||||
font-size: @font-size-base;
|
||||
font-family: @font-family;
|
||||
font-variant: @font-variant-base;
|
||||
line-height: @line-height-base;
|
||||
background-color: @body-background; // 2
|
||||
font-feature-settings: @font-feature-settings-base;
|
||||
}
|
||||
|
||||
// Suppress the focus outline on elements that cannot be accessed via keyboard.
|
||||
// This prevents an unwanted focus outline from appearing around elements that
|
||||
// might still respond to pointer events.
|
||||
//
|
||||
// Credit: https://github.com/suitcss/base
|
||||
[tabindex='-1']:focus {
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
// Content grouping
|
||||
//
|
||||
// 1. Add the correct box sizing in Firefox.
|
||||
// 2. Show the overflow in Edge and IE.
|
||||
|
||||
hr {
|
||||
box-sizing: content-box; // 1
|
||||
height: 0; // 1
|
||||
overflow: visible; // 2
|
||||
}
|
||||
|
||||
//
|
||||
// Typography
|
||||
//
|
||||
|
||||
// remove top margins from headings
|
||||
//
|
||||
// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top
|
||||
// margin for easier control within type scales as it avoids margin collapsing.
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5em;
|
||||
color: @heading-color;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
// Reset margins on paragraphs
|
||||
//
|
||||
// Similarly, the top margin on `<p>`s get reset. However, we also reset the
|
||||
// bottom margin to use `em` units instead of `em`.
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
// Abbreviations
|
||||
//
|
||||
// 1. remove the bottom border in Firefox 39-.
|
||||
// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
||||
// 3. Add explicit cursor to indicate changed behavior.
|
||||
// 4. Duplicate behavior to the data-* attribute for our tooltip plugin
|
||||
|
||||
abbr[title],
|
||||
abbr[data-original-title] {
|
||||
// 4
|
||||
text-decoration: underline; // 2
|
||||
text-decoration: underline dotted; // 2
|
||||
border-bottom: 0; // 1
|
||||
cursor: help; // 3
|
||||
}
|
||||
|
||||
address {
|
||||
margin-bottom: 1em;
|
||||
font-style: normal;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
input[type='text'],
|
||||
input[type='password'],
|
||||
input[type='number'],
|
||||
textarea {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul,
|
||||
dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
ol ol,
|
||||
ul ul,
|
||||
ol ul,
|
||||
ul ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: 0.5em;
|
||||
margin-left: 0; // Undo browser default
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 1em;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic; // Add the correct font style in Android 4.3-
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 80%; // Add the correct font size in all browsers
|
||||
}
|
||||
|
||||
//
|
||||
// Prevent `sub` and `sup` elements from affecting the line height in
|
||||
// all browsers.
|
||||
//
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
//
|
||||
// Links
|
||||
//
|
||||
|
||||
a {
|
||||
color: @link-color;
|
||||
text-decoration: @link-decoration;
|
||||
background-color: transparent; // remove the gray background on active links in IE 10.
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
transition: color 0.3s;
|
||||
-webkit-text-decoration-skip: objects; // remove gaps in links underline in iOS 8+ and Safari 8+.
|
||||
|
||||
&:hover {
|
||||
color: @link-hover-color;
|
||||
}
|
||||
|
||||
&:active {
|
||||
color: @link-active-color;
|
||||
}
|
||||
|
||||
&:active,
|
||||
&:hover {
|
||||
text-decoration: @link-hover-decoration;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
// https://github.com/ant-design/ant-design/issues/22503
|
||||
&:focus {
|
||||
text-decoration: @link-focus-decoration;
|
||||
outline: @link-focus-outline;
|
||||
}
|
||||
|
||||
&[disabled] {
|
||||
color: @disabled-color;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Code
|
||||
//
|
||||
|
||||
pre,
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-size: 1em; // Correct the odd `em` font sizing in all browsers.
|
||||
font-family: @code-family;
|
||||
}
|
||||
|
||||
pre {
|
||||
// remove browser default top margin
|
||||
margin-top: 0;
|
||||
// Reset browser default of `1em` to use `em`s
|
||||
margin-bottom: 1em;
|
||||
// Don't allow content to break outside
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
//
|
||||
// Figures
|
||||
//
|
||||
figure {
|
||||
// Apply a consistent margin strategy (matches our type styles).
|
||||
margin: 0 0 1em;
|
||||
}
|
||||
|
||||
//
|
||||
// Images and content
|
||||
//
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
border-style: none; // remove the border on images inside links in IE 10-.
|
||||
}
|
||||
|
||||
// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.
|
||||
//
|
||||
// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11
|
||||
// DON'T remove the click delay when `<meta name="viewport" content="width=device-width">` is present.
|
||||
// However, they DO support emoving the click delay via `touch-action: manipulation`.
|
||||
// See:
|
||||
// * https://getbootstrap.com/docs/4.0/content/reboot/#click-delay-optimization-for-touch
|
||||
// * http://caniuse.com/#feat=css-touch-action
|
||||
// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay
|
||||
|
||||
a,
|
||||
area,
|
||||
button,
|
||||
[role='button'],
|
||||
input:not([type='range']),
|
||||
label,
|
||||
select,
|
||||
summary,
|
||||
textarea {
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
//
|
||||
// Tables
|
||||
//
|
||||
|
||||
table {
|
||||
border-collapse: collapse; // Prevent double borders
|
||||
}
|
||||
|
||||
caption {
|
||||
padding-top: 0.75em;
|
||||
padding-bottom: 0.3em;
|
||||
color: @text-color-secondary;
|
||||
text-align: left;
|
||||
caption-side: bottom;
|
||||
}
|
||||
|
||||
//
|
||||
// Forms
|
||||
//
|
||||
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
optgroup,
|
||||
textarea {
|
||||
margin: 0; // remove the margin in Firefox and Safari
|
||||
color: inherit;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
overflow: visible; // Show the overflow in Edge
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none; // remove the inheritance of text transform in Firefox
|
||||
}
|
||||
|
||||
// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
|
||||
// controls in Android 4.
|
||||
// 2. Correct the inability to style clickable types in iOS and Safari.
|
||||
button,
|
||||
@{html-selector} [type="button"], /* 1 */
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button; // 2
|
||||
}
|
||||
|
||||
// remove inner border and padding from Firefox, but don't restore the outline like Normalize.
|
||||
button::-moz-focus-inner,
|
||||
[type='button']::-moz-focus-inner,
|
||||
[type='reset']::-moz-focus-inner,
|
||||
[type='submit']::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
input[type='radio'],
|
||||
input[type='checkbox'] {
|
||||
box-sizing: border-box; // 1. Add the correct box sizing in IE 10-
|
||||
padding: 0; // 2. remove the padding in IE 10-
|
||||
}
|
||||
|
||||
input[type='date'],
|
||||
input[type='time'],
|
||||
input[type='datetime-local'],
|
||||
input[type='month'] {
|
||||
// remove the default appearance of temporal inputs to avoid a Mobile Safari
|
||||
// bug where setting a custom line-height prevents text from being vertically
|
||||
// centered within the input.
|
||||
// See https://bugs.webkit.org/show_bug.cgi?id=139848
|
||||
// and https://github.com/twbs/bootstrap/issues/11266
|
||||
-webkit-appearance: listbox;
|
||||
}
|
||||
|
||||
textarea {
|
||||
overflow: auto; // remove the default vertical scrollbar in IE.
|
||||
// Textareas should really only resize vertically so they don't break their (horizontal) containers.
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
// Browsers set a default `min-width: min-content;` on fieldsets,
|
||||
// unlike e.g. `<div>`s, which have `min-width: 0;` by default.
|
||||
// So we reset that to ensure fieldsets behave more like a standard block element.
|
||||
// See https://github.com/twbs/bootstrap/issues/12359
|
||||
// and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
|
||||
min-width: 0;
|
||||
margin: 0;
|
||||
// Reset the default outline behavior of fieldsets so they don't affect page layout.
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
// 1. Correct the text wrapping in Edge and IE.
|
||||
// 2. Correct the color inheritance from `fieldset` elements in IE.
|
||||
legend {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: 100%; // 1
|
||||
margin-bottom: 0.5em;
|
||||
padding: 0;
|
||||
color: inherit; // 2
|
||||
font-size: 1.5em;
|
||||
line-height: inherit;
|
||||
white-space: normal; // 1
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
||||
}
|
||||
|
||||
// Correct the cursor style of incement and decement buttons in Chrome.
|
||||
[type='number']::-webkit-inner-spin-button,
|
||||
[type='number']::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type='search'] {
|
||||
// This overrides the extra rounded corners on search inputs in iOS so that our
|
||||
// `.form-control` class can properly style them. Note that this cannot simply
|
||||
// be added to `.form-control` as it's not specific enough. For details, see
|
||||
// https://github.com/twbs/bootstrap/issues/11586.
|
||||
outline-offset: -2px; // 2. Correct the outline style in Safari.
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
//
|
||||
// remove the inner padding and cancel buttons in Chrome and Safari on macOS.
|
||||
//
|
||||
|
||||
[type='search']::-webkit-search-cancel-button,
|
||||
[type='search']::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
//
|
||||
// 1. Correct the inability to style clickable types in iOS and Safari.
|
||||
// 2. Change font properties to `inherit` in Safari.
|
||||
//
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit; // 2
|
||||
-webkit-appearance: button; // 1
|
||||
}
|
||||
|
||||
//
|
||||
// Correct element displays
|
||||
//
|
||||
|
||||
output {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item; // Add the correct display in all browsers
|
||||
}
|
||||
|
||||
template {
|
||||
display: none; // Add the correct display in IE
|
||||
}
|
||||
|
||||
// Always hide an element with the `hidden` HTML attribute (from PureCSS).
|
||||
// Needed for proper display in IE 10-.
|
||||
[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
mark {
|
||||
padding: 0.2em;
|
||||
background-color: @yellow-1;
|
||||
}
|
||||
|
||||
::selection {
|
||||
color: @text-color-inverse;
|
||||
background: @text-selection-bg;
|
||||
}
|
||||
|
||||
// Utility classes
|
||||
.clearfix {
|
||||
.clearfix();
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
@import '../themes/index';
|
||||
@import '../mixins/iconfont';
|
||||
|
||||
.@{iconfont-css-prefix} {
|
||||
.iconfont-mixin();
|
||||
|
||||
// https://github.com/ant-design/ant-design/issues/33703
|
||||
& > & {
|
||||
line-height: 0;
|
||||
vertical-align: 0;
|
||||
}
|
||||
|
||||
&[tabindex] {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.@{iconfont-css-prefix}-spin::before {
|
||||
display: inline-block;
|
||||
animation: loadingCircle 1s infinite linear;
|
||||
}
|
||||
.@{iconfont-css-prefix}-spin {
|
||||
display: inline-block;
|
||||
animation: loadingCircle 1s infinite linear;
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
@import '../mixins/index';
|
||||
@import 'base';
|
||||
@import 'global';
|
||||
@import 'iconfont';
|
||||
@import 'motion';
|
|
@ -1,22 +0,0 @@
|
|||
// @import '../mixins/motion'; This has moved to theme/xxx inside.
|
||||
@import 'motion/fade';
|
||||
@import 'motion/move';
|
||||
@import 'motion/other';
|
||||
@import 'motion/slide';
|
||||
@import 'motion/zoom';
|
||||
|
||||
// For common/openAnimation
|
||||
.ant-motion-collapse-legacy {
|
||||
overflow: hidden;
|
||||
|
||||
&-active {
|
||||
transition: height @animation-duration-base @ease-in-out,
|
||||
opacity @animation-duration-base @ease-in-out !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-motion-collapse {
|
||||
overflow: hidden;
|
||||
transition: height @animation-duration-base @ease-in-out,
|
||||
opacity @animation-duration-base @ease-in-out !important;
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
.fade-motion(@className, @keyframeName) {
|
||||
@name: ~'@{ant-prefix}-@{className}';
|
||||
.make-motion(@name, @keyframeName);
|
||||
.@{name}-enter,
|
||||
.@{name}-appear {
|
||||
opacity: 0;
|
||||
animation-timing-function: linear;
|
||||
}
|
||||
.@{name}-leave {
|
||||
animation-timing-function: linear;
|
||||
}
|
||||
|
||||
.make-motion(@className, @keyframeName);
|
||||
.@{className}-enter,
|
||||
.@{className}-appear {
|
||||
opacity: 0;
|
||||
animation-timing-function: linear;
|
||||
}
|
||||
.@{className}-leave {
|
||||
animation-timing-function: linear;
|
||||
}
|
||||
}
|
||||
|
||||
.fade-motion(fade, antFade);
|
||||
|
||||
@keyframes antFadeIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antFadeOut {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
|
@ -1,139 +0,0 @@
|
|||
.move-motion(@className, @keyframeName) {
|
||||
@name: ~'@{ant-prefix}-@{className}';
|
||||
.make-motion(@name, @keyframeName);
|
||||
.@{name}-enter,
|
||||
.@{name}-appear {
|
||||
opacity: 0;
|
||||
animation-timing-function: @ease-out-circ;
|
||||
}
|
||||
.@{name}-leave {
|
||||
animation-timing-function: @ease-in-circ;
|
||||
}
|
||||
|
||||
.make-motion(@className, @keyframeName);
|
||||
.@{className}-enter,
|
||||
.@{className}-appear {
|
||||
opacity: 0;
|
||||
animation-timing-function: @ease-out-circ;
|
||||
}
|
||||
.@{className}-leave {
|
||||
animation-timing-function: @ease-in-circ;
|
||||
}
|
||||
}
|
||||
|
||||
.move-motion(move-up, antMoveUp);
|
||||
.move-motion(move-down, antMoveDown);
|
||||
.move-motion(move-left, antMoveLeft);
|
||||
.move-motion(move-right, antMoveRight);
|
||||
|
||||
@keyframes antMoveDownIn {
|
||||
0% {
|
||||
transform: translateY(100%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antMoveDownOut {
|
||||
0% {
|
||||
transform: translateY(0%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(100%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antMoveLeftIn {
|
||||
0% {
|
||||
transform: translateX(-100%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateX(0%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antMoveLeftOut {
|
||||
0% {
|
||||
transform: translateX(0%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateX(-100%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antMoveRightIn {
|
||||
0% {
|
||||
transform: translateX(100%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateX(0%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antMoveRightOut {
|
||||
0% {
|
||||
transform: translateX(0%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateX(100%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antMoveUpIn {
|
||||
0% {
|
||||
transform: translateY(-100%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antMoveUpOut {
|
||||
0% {
|
||||
transform: translateY(0%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(-100%);
|
||||
transform-origin: 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
@keyframes loadingCircle {
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@click-animating-true: ~"[@{ant-prefix}-click-animating='true']";
|
||||
@click-animating-with-extra-node-true: ~"[@{ant-prefix}-click-animating-without-extra-node='true']";
|
||||
|
||||
@{click-animating-true},
|
||||
@{click-animating-with-extra-node-true} {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
html {
|
||||
--antd-wave-shadow-color: @primary-color;
|
||||
--scroll-bar: 0;
|
||||
}
|
||||
|
||||
@click-animating-with-extra-node-true-after: ~'@{click-animating-with-extra-node-true}::after';
|
||||
|
||||
@{click-animating-with-extra-node-true-after},
|
||||
.@{ant-prefix}-click-animating-node {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: block;
|
||||
border-radius: inherit;
|
||||
box-shadow: 0 0 0 0 @primary-color;
|
||||
box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);
|
||||
opacity: 0.2;
|
||||
animation: fadeEffect 2s @ease-out-circ, waveEffect 0.4s @ease-out-circ;
|
||||
animation-fill-mode: forwards;
|
||||
content: '';
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@keyframes waveEffect {
|
||||
100% {
|
||||
box-shadow: 0 0 0 @primary-color;
|
||||
box-shadow: 0 0 0 @wave-animation-width var(--antd-wave-shadow-color);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeEffect {
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
|
@ -1,147 +0,0 @@
|
|||
.slide-motion(@className, @keyframeName) {
|
||||
@name: ~'@{ant-prefix}-@{className}';
|
||||
.make-motion(@name, @keyframeName);
|
||||
.@{name}-enter,
|
||||
.@{name}-appear {
|
||||
opacity: 0;
|
||||
animation-timing-function: @ease-out-quint;
|
||||
}
|
||||
.@{name}-leave {
|
||||
animation-timing-function: @ease-in-quint;
|
||||
}
|
||||
}
|
||||
|
||||
.slide-motion-legacy(@className, @keyframeName) {
|
||||
@name: ~'@{className}';
|
||||
.make-motion(@name, @keyframeName);
|
||||
.@{name}-enter,
|
||||
.@{name}-appear {
|
||||
opacity: 0;
|
||||
animation-timing-function: @ease-out-quint;
|
||||
}
|
||||
.@{name}-leave {
|
||||
animation-timing-function: @ease-in-quint;
|
||||
}
|
||||
}
|
||||
|
||||
.slide-motion-legacy(slide-up, antSlideUp);
|
||||
.slide-motion-legacy(slide-down, antSlideDown);
|
||||
.slide-motion-legacy(slide-left, antSlideLeft);
|
||||
.slide-motion-legacy(slide-right, antSlideRight);
|
||||
|
||||
.slide-motion(slide-up, antSlideUp);
|
||||
.slide-motion(slide-down, antSlideDown);
|
||||
.slide-motion(slide-left, antSlideLeft);
|
||||
.slide-motion(slide-right, antSlideRight);
|
||||
|
||||
@keyframes antSlideUpIn {
|
||||
0% {
|
||||
transform: scaleY(0.8);
|
||||
transform-origin: 0% 0%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scaleY(1);
|
||||
transform-origin: 0% 0%;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antSlideUpOut {
|
||||
0% {
|
||||
transform: scaleY(1);
|
||||
transform-origin: 0% 0%;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scaleY(0.8);
|
||||
transform-origin: 0% 0%;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antSlideDownIn {
|
||||
0% {
|
||||
transform: scaleY(0.8);
|
||||
transform-origin: 100% 100%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scaleY(1);
|
||||
transform-origin: 100% 100%;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antSlideDownOut {
|
||||
0% {
|
||||
transform: scaleY(1);
|
||||
transform-origin: 100% 100%;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scaleY(0.8);
|
||||
transform-origin: 100% 100%;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antSlideLeftIn {
|
||||
0% {
|
||||
transform: scaleX(0.8);
|
||||
transform-origin: 0% 0%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scaleX(1);
|
||||
transform-origin: 0% 0%;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antSlideLeftOut {
|
||||
0% {
|
||||
transform: scaleX(1);
|
||||
transform-origin: 0% 0%;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scaleX(0.8);
|
||||
transform-origin: 0% 0%;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antSlideRightIn {
|
||||
0% {
|
||||
transform: scaleX(0.8);
|
||||
transform-origin: 100% 0%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scaleX(1);
|
||||
transform-origin: 100% 0%;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antSlideRightOut {
|
||||
0% {
|
||||
transform: scaleX(1);
|
||||
transform-origin: 100% 0%;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scaleX(0.8);
|
||||
transform-origin: 100% 0%;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
|
@ -1,193 +0,0 @@
|
|||
.zoom-motion(@className, @keyframeName, @duration: @animation-duration-base) {
|
||||
@name: ~'@{ant-prefix}-@{className}';
|
||||
.make-motion(@name, @keyframeName, @duration);
|
||||
.@{name}-enter,
|
||||
.@{name}-appear {
|
||||
transform: scale(0); // need this by yiminghe
|
||||
opacity: 0;
|
||||
animation-timing-function: @ease-out-circ;
|
||||
|
||||
&-prepare {
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
.@{name}-leave {
|
||||
animation-timing-function: @ease-in-out-circ;
|
||||
}
|
||||
|
||||
.make-motion(@className, @keyframeName, @duration);
|
||||
.@{className}-enter,
|
||||
.@{className}-appear {
|
||||
transform: scale(0); // need this by yiminghe
|
||||
opacity: 0;
|
||||
animation-timing-function: @ease-out-circ;
|
||||
&-prepare {
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
.@{className}-leave {
|
||||
animation-timing-function: @ease-in-out-circ;
|
||||
}
|
||||
}
|
||||
|
||||
// For Modal, Select choosen item
|
||||
.zoom-motion(zoom, antZoom);
|
||||
// For Popover, Popconfirm, Dropdown
|
||||
.zoom-motion(zoom-big, antZoomBig);
|
||||
// For Tooltip
|
||||
.zoom-motion(zoom-big-fast, antZoomBig, @animation-duration-fast);
|
||||
|
||||
.zoom-motion(zoom-up, antZoomUp);
|
||||
.zoom-motion(zoom-down, antZoomDown);
|
||||
.zoom-motion(zoom-left, antZoomLeft);
|
||||
.zoom-motion(zoom-right, antZoomRight);
|
||||
|
||||
@keyframes antZoomIn {
|
||||
0% {
|
||||
transform: scale(0.2);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomOut {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(0.2);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomBigIn {
|
||||
0% {
|
||||
transform: scale(0.8);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomBigOut {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(0.8);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomUpIn {
|
||||
0% {
|
||||
transform: scale(0.8);
|
||||
transform-origin: 50% 0%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
transform-origin: 50% 0%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomUpOut {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
transform-origin: 50% 0%;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(0.8);
|
||||
transform-origin: 50% 0%;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomLeftIn {
|
||||
0% {
|
||||
transform: scale(0.8);
|
||||
transform-origin: 0% 50%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
transform-origin: 0% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomLeftOut {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
transform-origin: 0% 50%;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(0.8);
|
||||
transform-origin: 0% 50%;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomRightIn {
|
||||
0% {
|
||||
transform: scale(0.8);
|
||||
transform-origin: 100% 50%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
transform-origin: 100% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomRightOut {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
transform-origin: 100% 50%;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(0.8);
|
||||
transform-origin: 100% 50%;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomDownIn {
|
||||
0% {
|
||||
transform: scale(0.8);
|
||||
transform-origin: 50% 100%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
transform-origin: 50% 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes antZoomDownOut {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
transform-origin: 50% 100%;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(0.8);
|
||||
transform-origin: 50% 100%;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
@root-entry-name: default;
|
||||
|
||||
@import './themes/dark.less';
|
||||
@import './core/index';
|
|
@ -1,4 +0,0 @@
|
|||
// This is same as `index.less` but given `root-entry-name` for `dist/antd.less` usage
|
||||
@root-entry-name: default;
|
||||
|
||||
@import './index';
|
|
@ -1,2 +0,0 @@
|
|||
@import './themes/index';
|
||||
@import './core/index';
|
|
@ -1 +0,0 @@
|
|||
import './index.less';
|
|
@ -1,7 +0,0 @@
|
|||
.box(@position: absolute) {
|
||||
position: @position;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
// mixins for clearfix
|
||||
// ------------------------
|
||||
.clearfix() {
|
||||
// https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229
|
||||
&::before {
|
||||
display: table;
|
||||
content: '';
|
||||
}
|
||||
|
||||
&::after {
|
||||
// https://github.com/ant-design/ant-design/issues/21864
|
||||
display: table;
|
||||
clear: both;
|
||||
content: '';
|
||||
}
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
// Compatibility for browsers.
|
||||
|
||||
// Placeholder text
|
||||
.placeholder(@color: @input-placeholder-color) {
|
||||
// Firefox
|
||||
/* stylelint-disable-next-line selector-no-vendor-prefix */
|
||||
&::-moz-placeholder {
|
||||
opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
|
||||
}
|
||||
|
||||
&::placeholder {
|
||||
color: @color;
|
||||
user-select: none; // https://github.com/ant-design/ant-design/pull/32639
|
||||
}
|
||||
|
||||
&:placeholder-shown {
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
|
@ -1,181 +0,0 @@
|
|||
// customize dark components background in popover containers(like Modal, Drawer, Card, Popover, Popconfirm, Notification, ...)
|
||||
// for dark theme
|
||||
.popover-customize-bg(@containerClass, @background: @popover-background, @prefix: @ant-prefix)
|
||||
when
|
||||
(@theme = dark) {
|
||||
@picker-prefix-cls: ~'@{prefix}-picker';
|
||||
@slider-prefix-cls: ~'@{prefix}-slider';
|
||||
@anchor-prefix-cls: ~'@{prefix}-anchor';
|
||||
@collapse-prefix-cls: ~'@{prefix}-collapse';
|
||||
@tab-prefix-cls: ~'@{prefix}-tabs';
|
||||
@timeline-prefix-cls: ~'@{prefix}-timeline';
|
||||
@tree-prefix-cls: ~'@{prefix}-tree';
|
||||
@card-prefix-cls: ~'@{prefix}-card';
|
||||
@badge-prefix-cls: ~'@{prefix}-badge';
|
||||
@transfer-prefix-cls: ~'@{prefix}-transfer';
|
||||
@calendar-prefix-cls: ~'@{prefix}-picker-calendar';
|
||||
@calendar-picker-prefix-cls: ~'@{prefix}-picker';
|
||||
@table-prefix-cls: ~'@{prefix}-table';
|
||||
|
||||
@popover-border: @border-width-base @border-style-base @popover-customize-border-color;
|
||||
|
||||
.@{containerClass} {
|
||||
.@{picker-prefix-cls}-clear,
|
||||
.@{slider-prefix-cls}-handle,
|
||||
.@{anchor-prefix-cls}-wrapper,
|
||||
.@{collapse-prefix-cls}-content,
|
||||
.@{timeline-prefix-cls}-item-head,
|
||||
.@{card-prefix-cls} {
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
.@{transfer-prefix-cls} {
|
||||
&-list {
|
||||
&-header {
|
||||
background: @background;
|
||||
border-bottom: @popover-border;
|
||||
}
|
||||
&-content-item:not(.@{transfer-prefix-cls}-list-content-item-disabled):hover {
|
||||
background-color: @item-hover-bg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tr.@{table-prefix-cls}-expanded-row {
|
||||
&,
|
||||
&:hover {
|
||||
> td {
|
||||
background: #272727;
|
||||
}
|
||||
}
|
||||
}
|
||||
.@{table-prefix-cls}.@{table-prefix-cls}-small {
|
||||
thead {
|
||||
> tr {
|
||||
> th {
|
||||
background-color: @background;
|
||||
border-bottom: @popover-border;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.@{table-prefix-cls} {
|
||||
background-color: @background;
|
||||
.@{table-prefix-cls}-row-expand-icon {
|
||||
border: @popover-border;
|
||||
}
|
||||
|
||||
tfoot {
|
||||
> tr {
|
||||
> th,
|
||||
> td {
|
||||
border-bottom: @popover-border;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
thead {
|
||||
> tr {
|
||||
> th {
|
||||
background-color: #272727;
|
||||
border-bottom: @popover-border;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tbody {
|
||||
> tr {
|
||||
> td {
|
||||
border-bottom: @popover-border;
|
||||
&.@{table-prefix-cls}-cell-fix-left,
|
||||
&.@{table-prefix-cls}-cell-fix-right {
|
||||
background-color: @background;
|
||||
}
|
||||
}
|
||||
&.@{table-prefix-cls}-row:hover {
|
||||
> td {
|
||||
background: @table-header-sort-active-bg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.@{table-prefix-cls}-bordered {
|
||||
.@{table-prefix-cls}-title {
|
||||
border: @popover-border;
|
||||
}
|
||||
|
||||
// ============================= Cell =============================
|
||||
thead > tr > th,
|
||||
tbody > tr > td,
|
||||
tfoot > tr > th,
|
||||
tfoot > tr > td {
|
||||
border-right: @popover-border;
|
||||
}
|
||||
|
||||
// Fixed right should provides additional border
|
||||
.@{table-prefix-cls}-cell-fix-right-first::after {
|
||||
border-right: @popover-border;
|
||||
}
|
||||
|
||||
// ============================ Header ============================
|
||||
table > {
|
||||
thead {
|
||||
> tr:not(:last-child) > th {
|
||||
border-bottom: @border-width-base @border-style-base @border-color-split;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// =========================== Content ============================
|
||||
.@{table-prefix-cls}-container {
|
||||
border: @popover-border;
|
||||
}
|
||||
|
||||
// ========================== Expandable ==========================
|
||||
.@{table-prefix-cls}-expanded-row-fixed {
|
||||
&::after {
|
||||
border-right: @popover-border;
|
||||
}
|
||||
}
|
||||
|
||||
.@{table-prefix-cls}-footer {
|
||||
border: @popover-border;
|
||||
}
|
||||
}
|
||||
.@{table-prefix-cls}-filter-trigger-container-open {
|
||||
background-color: #525252;
|
||||
}
|
||||
}
|
||||
|
||||
.@{calendar-prefix-cls}-full {
|
||||
background-color: @background;
|
||||
.@{calendar-picker-prefix-cls}-panel {
|
||||
background-color: @background;
|
||||
.@{calendar-prefix-cls}-date {
|
||||
border-top: 2px solid @popover-customize-border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.@{tab-prefix-cls} {
|
||||
&.@{tab-prefix-cls}-card .@{tab-prefix-cls}-card-bar .@{tab-prefix-cls}-tab-active {
|
||||
background-color: @background;
|
||||
border-bottom: @border-width-base solid @background;
|
||||
}
|
||||
}
|
||||
|
||||
.@{badge-prefix-cls} {
|
||||
&-count {
|
||||
box-shadow: 0 0 0 1px @background;
|
||||
}
|
||||
}
|
||||
|
||||
.@{tree-prefix-cls} {
|
||||
&-show-line {
|
||||
.@{tree-prefix-cls}-switcher {
|
||||
background: @background;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
.iconfont-mixin() {
|
||||
display: inline-block;
|
||||
color: @icon-color;
|
||||
font-style: normal;
|
||||
line-height: 0;
|
||||
text-align: center;
|
||||
text-transform: none;
|
||||
vertical-align: -0.125em; // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4
|
||||
text-rendering: optimizelegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
> * {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
svg {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
&::before {
|
||||
display: none; // dont display old icon.
|
||||
}
|
||||
|
||||
& &-icon {
|
||||
display: block;
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
// Mixins
|
||||
// --------------------------------------------------
|
||||
@import 'size';
|
||||
@import 'compatibility';
|
||||
@import 'clearfix';
|
||||
@import 'iconfont';
|
||||
@import 'typography';
|
||||
@import 'customize';
|
||||
@import 'box';
|
||||
@import 'modal-mask';
|
||||
@import 'motion';
|
||||
@import 'reset';
|
||||
@import 'operation-unit';
|
||||
@import 'rounded-arrow';
|
|
@ -1,31 +0,0 @@
|
|||
@import 'box';
|
||||
|
||||
.modal-mask() {
|
||||
pointer-events: none;
|
||||
|
||||
&.@{ant-prefix}-zoom-enter,
|
||||
&.@{ant-prefix}-zoom-appear {
|
||||
transform: none; // reset scale avoid mousePosition bug
|
||||
opacity: 0;
|
||||
animation-duration: @animation-duration-slow;
|
||||
user-select: none; // https://github.com/ant-design/ant-design/issues/11777
|
||||
}
|
||||
|
||||
&-mask {
|
||||
.box(fixed);
|
||||
z-index: @zindex-modal-mask;
|
||||
height: 100%;
|
||||
background-color: @modal-mask-bg;
|
||||
|
||||
&-hidden {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&-wrap {
|
||||
.box(fixed);
|
||||
overflow: auto;
|
||||
outline: 0;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
.motion-common(@duration: @animation-duration-base) {
|
||||
animation-duration: @duration;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.motion-common-leave(@duration: @animation-duration-base) {
|
||||
animation-duration: @duration;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
.make-motion(@className, @keyframeName, @duration: @animation-duration-base) {
|
||||
.@{className}-enter,
|
||||
.@{className}-appear {
|
||||
.motion-common(@duration);
|
||||
|
||||
animation-play-state: paused;
|
||||
}
|
||||
.@{className}-leave {
|
||||
.motion-common-leave(@duration);
|
||||
|
||||
animation-play-state: paused;
|
||||
}
|
||||
.@{className}-enter.@{className}-enter-active,
|
||||
.@{className}-appear.@{className}-appear-active {
|
||||
animation-name: ~'@{keyframeName}In';
|
||||
animation-play-state: running;
|
||||
}
|
||||
.@{className}-leave.@{className}-leave-active {
|
||||
animation-name: ~'@{keyframeName}Out';
|
||||
animation-play-state: running;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
.operation-unit() {
|
||||
color: @link-color;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
transition: color 0.3s;
|
||||
|
||||
&:focus,
|
||||
&:hover {
|
||||
color: @link-hover-color;
|
||||
}
|
||||
|
||||
&:active {
|
||||
color: @link-active-color;
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
.reset-component() {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: @text-color;
|
||||
font-size: @font-size-base;
|
||||
font-variant: @font-variant-base;
|
||||
line-height: @line-height-base;
|
||||
list-style: none;
|
||||
font-feature-settings: @font-feature-settings-base;
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
.roundedArrow(@width, @outer-radius, @bg-color: var(--antd-arrow-background-color)) {
|
||||
@corner-height: unit(((@outer-radius) * (1 - 1 / sqrt(2))));
|
||||
|
||||
@width-without-unit: unit(@width);
|
||||
@outer-radius-without-unit: unit(@outer-radius);
|
||||
@inner-radius-without-unit: unit(@arrow-border-radius);
|
||||
|
||||
@a-x: @width-without-unit - @corner-height;
|
||||
@a-y: 2 * @width-without-unit + @corner-height;
|
||||
@b-x: @a-x + @outer-radius-without-unit * (1 / sqrt(2));
|
||||
@b-y: 2 * @width-without-unit;
|
||||
@c-x: 2 * @width-without-unit - @inner-radius-without-unit;
|
||||
@c-y: 2 * @width-without-unit;
|
||||
@d-x: 2 * @width-without-unit;
|
||||
@d-y: 2 * @width-without-unit - @inner-radius-without-unit;
|
||||
@e-x: 2 * @width-without-unit;
|
||||
@e-y: @f-y + @outer-radius-without-unit * (1 / sqrt(2));
|
||||
@f-x: 2 * @width-without-unit + @corner-height;
|
||||
@f-y: @width-without-unit - @corner-height;
|
||||
@g-x: @f-x - 1;
|
||||
@g-y: @f-y;
|
||||
@h-x: @a-x;
|
||||
@h-y: @a-y - 1;
|
||||
|
||||
border-radius: 0 0 @arrow-border-radius;
|
||||
pointer-events: none;
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
top: -@width;
|
||||
left: -@width;
|
||||
width: @width * 3;
|
||||
height: @width * 3;
|
||||
background: @bg-color;
|
||||
// Hack firefox: https://github.com/ant-design/ant-design/pull/33710#issuecomment-1015287825
|
||||
background-repeat: no-repeat;
|
||||
background-position: ceil(-@width + 1px) ceil(-@width + 1px);
|
||||
content: '';
|
||||
clip-path: path(
|
||||
'M @{a-x} @{a-y} A @{outer-radius-without-unit} @{outer-radius-without-unit} 0 0 1 @{b-x} @{b-y} L @{c-x} @{c-y} A @{inner-radius-without-unit} @{inner-radius-without-unit} 0 0 0 @{d-x} @{d-y} L @{e-x} @{e-y} A @{outer-radius-without-unit} @{outer-radius-without-unit} 0 0 1 @{f-x} @{f-y} L @{g-x} @{g-y} L @{h-x} @{h-y} Z'
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
// Sizing shortcuts
|
||||
|
||||
.size(@width; @height) {
|
||||
width: @width;
|
||||
height: @height;
|
||||
}
|
||||
|
||||
.square(@size) {
|
||||
.size(@size; @size);
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
// =============== Common ===============
|
||||
.typography-paragraph() {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) {
|
||||
margin-bottom: @headingMarginBottom;
|
||||
color: @headingColor;
|
||||
font-weight: @fontWeight;
|
||||
font-size: @fontSize;
|
||||
line-height: @lineHeight;
|
||||
}
|
||||
|
||||
.typography-title-1() {
|
||||
.typography-title(
|
||||
@heading-1-size,
|
||||
@typography-title-font-weight,
|
||||
1.23,
|
||||
@heading-color,
|
||||
@typography-title-margin-bottom
|
||||
);
|
||||
}
|
||||
.typography-title-2() {
|
||||
.typography-title(
|
||||
@heading-2-size,
|
||||
@typography-title-font-weight,
|
||||
1.35,
|
||||
@heading-color,
|
||||
@typography-title-margin-bottom
|
||||
);
|
||||
}
|
||||
.typography-title-3() {
|
||||
.typography-title(
|
||||
@heading-3-size,
|
||||
@typography-title-font-weight,
|
||||
1.35,
|
||||
@heading-color,
|
||||
@typography-title-margin-bottom
|
||||
);
|
||||
}
|
||||
.typography-title-4() {
|
||||
.typography-title(
|
||||
@heading-4-size,
|
||||
@typography-title-font-weight,
|
||||
1.4,
|
||||
@heading-color,
|
||||
@typography-title-margin-bottom
|
||||
);
|
||||
}
|
||||
.typography-title-5() {
|
||||
.typography-title(
|
||||
@heading-5-size,
|
||||
@typography-title-font-weight,
|
||||
1.5,
|
||||
@heading-color,
|
||||
@typography-title-margin-bottom
|
||||
);
|
||||
}
|
|
@ -1,295 +0,0 @@
|
|||
@import './default.less';
|
||||
|
||||
@line-height-base: 1.66667;
|
||||
@mode: compact;
|
||||
@font-size-base: 12px;
|
||||
@font-size-lg: @font-size-base + 2px;
|
||||
|
||||
// default paddings
|
||||
@default-padding-lg: 24px; // containers
|
||||
@default-padding-md: 16px; // small containers and buttons
|
||||
@default-padding-sm: 12px; // Form controls and items
|
||||
@default-padding-xs: 8px; // small items
|
||||
@default-padding-xss: 4px; // more small
|
||||
|
||||
// vertical paddings
|
||||
@padding-lg: 16px; // containers
|
||||
@padding-md: 8px; // small containers and buttons
|
||||
@padding-sm: 8px; // Form controls and items
|
||||
@padding-xs: 4px; // small items
|
||||
@padding-xss: 0px; // more small
|
||||
|
||||
// vertical padding for all form controls
|
||||
@control-padding-horizontal: @padding-sm;
|
||||
@control-padding-horizontal-sm: @default-padding-xs;
|
||||
|
||||
// vertical margins
|
||||
@margin-lg: 16px; // containers
|
||||
@margin-md: 8px; // small containers and buttons
|
||||
@margin-sm: 8px; // Form controls and items
|
||||
@margin-xs: 4px; // small items
|
||||
@margin-xss: 0px; // more small
|
||||
|
||||
// height rules
|
||||
@height-base: 28px;
|
||||
@height-lg: 32px;
|
||||
@height-sm: 22px;
|
||||
|
||||
// Button
|
||||
// ---
|
||||
@btn-padding-horizontal-base: @default-padding-sm - 1px;
|
||||
@btn-padding-horizontal-lg: @btn-padding-horizontal-base;
|
||||
@btn-padding-horizontal-sm: @default-padding-xs - 1px;
|
||||
@btn-square-only-icon-size-lg: 16px;
|
||||
@btn-square-only-icon-size: 14px;
|
||||
@btn-square-only-icon-size-sm: 12px;
|
||||
|
||||
// Breadcrumb
|
||||
// ---
|
||||
@breadcrumb-font-size: @font-size-base;
|
||||
@breadcrumb-icon-font-size: @font-size-base;
|
||||
|
||||
//Dropdown
|
||||
@dropdown-line-height: 18px;
|
||||
|
||||
// Menu
|
||||
@menu-item-padding: 0 12px;
|
||||
@menu-horizontal-line-height: 38px;
|
||||
@menu-inline-toplevel-item-height: 32px;
|
||||
@menu-item-height: 32px;
|
||||
@menu-item-vertical-margin: 0px;
|
||||
@menu-item-boundary-margin: 0px;
|
||||
@menu-icon-margin-right: 8px;
|
||||
|
||||
// Checkbox
|
||||
@checkbox-size: 14px;
|
||||
@checkbox-group-item-margin-right: 6px;
|
||||
|
||||
// picker
|
||||
@picker-panel-cell-height: 22px;
|
||||
@picker-panel-cell-width: 32px;
|
||||
@picker-text-height: 32px;
|
||||
@picker-time-panel-cell-height: 24px;
|
||||
@picker-panel-without-time-cell-height: 48px;
|
||||
|
||||
// Form
|
||||
// ---
|
||||
@form-item-margin-bottom: 16px;
|
||||
@form-vertical-label-padding: 0 0 4px;
|
||||
|
||||
// Rate
|
||||
// ---
|
||||
@rate-star-size: 16px;
|
||||
|
||||
// Radio
|
||||
// ---
|
||||
@radio-size: 14px;
|
||||
@radio-wrapper-margin-right: 6px;
|
||||
|
||||
// Switch
|
||||
// ---
|
||||
@switch-height: 20px;
|
||||
@switch-sm-height: 14px;
|
||||
@switch-min-width: 40px;
|
||||
@switch-sm-min-width: 24px;
|
||||
@switch-inner-margin-min: 4px;
|
||||
@switch-inner-margin-max: 22px;
|
||||
|
||||
// Slider
|
||||
// ---
|
||||
@slider-handle-size: 12px;
|
||||
@slider-handle-margin-top: -4px;
|
||||
|
||||
// Input
|
||||
// ---
|
||||
@input-padding-vertical-base: round(
|
||||
max(
|
||||
(round(((@input-height-base - @font-size-base * @line-height-base) / 2) * 10) / 10) -
|
||||
@border-width-base,
|
||||
2px
|
||||
)
|
||||
);
|
||||
@input-padding-horizontal-lg: 11px;
|
||||
|
||||
// PageHeader
|
||||
// ---
|
||||
@page-header-padding: 16px;
|
||||
@page-header-padding-vertical: 8px;
|
||||
@page-header-heading-title: 16px;
|
||||
@page-header-heading-sub-title: 12px;
|
||||
@page-header-tabs-tab-font-size: 14px;
|
||||
|
||||
// Pagination
|
||||
// ---
|
||||
@pagination-mini-options-size-changer-top: 1px;
|
||||
@pagination-item-size-sm: 22px;
|
||||
|
||||
// Cascader
|
||||
// ----
|
||||
@cascader-dropdown-line-height: @dropdown-line-height;
|
||||
|
||||
// Select
|
||||
// ---
|
||||
@select-dropdown-height: @height-base;
|
||||
@select-single-item-height-lg: 32px;
|
||||
@select-multiple-item-height: @input-height-base - max(@input-padding-vertical-base, 4) * 2; // Normal 24px
|
||||
@select-multiple-item-height-lg: 24px;
|
||||
@select-multiple-item-spacing-half: 3px;
|
||||
|
||||
// Tree
|
||||
// ---
|
||||
@tree-title-height: 20px;
|
||||
|
||||
// Transfer
|
||||
// ---
|
||||
@transfer-item-padding-vertical: 3px;
|
||||
@transfer-list-search-icon-top: 8px;
|
||||
@transfer-header-height: 36px;
|
||||
|
||||
// Comment
|
||||
// ---
|
||||
@comment-actions-margin-bottom: 0px;
|
||||
@comment-actions-margin-top: @margin-xs;
|
||||
@comment-content-detail-p-margin-bottom: 0px;
|
||||
|
||||
// Steps
|
||||
// ---
|
||||
@steps-icon-size: 24px;
|
||||
@steps-icon-custom-size: 20px;
|
||||
@steps-icon-custom-font-size: 20px;
|
||||
@steps-icon-custom-top: 2px;
|
||||
@steps-icon-margin: 2px 8px 2px 0;
|
||||
@steps-icon-font-size: @font-size-base;
|
||||
@steps-dot-top: 4px;
|
||||
@steps-icon-top: 0px;
|
||||
@steps-small-icon-size: 20px;
|
||||
@steps-vertical-icon-width: 12px;
|
||||
@steps-vertical-tail-width: 12px;
|
||||
@steps-vertical-tail-width-sm: 10px;
|
||||
// Collapse
|
||||
// ---
|
||||
//@collapse-header-padding-extra: 32px;
|
||||
@collapse-content-padding: @padding-md @padding-lg;
|
||||
|
||||
// List
|
||||
// ---
|
||||
@list-item-meta-description-font-size: @font-size-sm;
|
||||
@list-item-padding-sm: 4px 12px;
|
||||
@list-item-padding-lg: 12px 16px;
|
||||
|
||||
// Drawer
|
||||
// ---
|
||||
@drawer-header-padding: 11px @padding-lg;
|
||||
@drawer-footer-padding-vertical: @padding-sm;
|
||||
@drawer-footer-padding-horizontal: @padding-sm;
|
||||
@drawer-header-close-size: 44px;
|
||||
|
||||
// Modal
|
||||
// --
|
||||
@modal-header-padding: 11px @modal-header-padding-horizontal;
|
||||
@modal-footer-padding-vertical: @padding-sm;
|
||||
@modal-header-close-size: 44px;
|
||||
@modal-confirm-body-padding: 24px 24px 16px;
|
||||
|
||||
// Message
|
||||
// ---
|
||||
@message-notice-content-padding: 8px 16px;
|
||||
|
||||
// popover
|
||||
// --
|
||||
@popover-min-height: 28px;
|
||||
@popover-padding-horizontal: @default-padding-sm;
|
||||
|
||||
// Card
|
||||
// ---
|
||||
@card-padding-base: 16px;
|
||||
@card-head-height: 36px;
|
||||
@card-head-font-size: @card-head-font-size-sm;
|
||||
@card-head-padding: 8.5px;
|
||||
@card-padding-base: 12px;
|
||||
@card-padding-base-sm: @card-padding-base;
|
||||
@card-head-height-sm: 30px;
|
||||
@card-head-padding-sm: 6px;
|
||||
@card-actions-li-margin: 4px 0;
|
||||
@card-head-tabs-margin-bottom: -9px;
|
||||
|
||||
// Table
|
||||
// ---
|
||||
@table-padding-vertical: 12px;
|
||||
@table-padding-horizontal: 8px;
|
||||
@table-padding-vertical-md: 8px;
|
||||
@table-padding-horizontal-md: 8px;
|
||||
@table-padding-vertical-sm: 4px;
|
||||
@table-padding-horizontal-sm: 4px;
|
||||
@table-selection-column-width: 32px;
|
||||
|
||||
// Statistic
|
||||
// ---
|
||||
@statistic-content-font-size: 20px;
|
||||
|
||||
// Alert
|
||||
// ---
|
||||
@alert-with-description-no-icon-padding-vertical: 7px;
|
||||
@alert-with-description-padding-vertical: 11px;
|
||||
@alert-icon-top: 7px + @font-size-base * (@line-height-base / 2) - (@font-size-base / 2);
|
||||
@alert-with-description-icon-size: 20px;
|
||||
|
||||
// Skeleton
|
||||
// ---
|
||||
@skeleton-paragraph-margin-top: 20px;
|
||||
@skeleton-paragraph-li-margin-top: 12px;
|
||||
@skeleton-paragraph-li-height: 14px;
|
||||
@skeleton-title-height: 14px;
|
||||
@skeleton-title-paragraph-margin-top: 20px;
|
||||
|
||||
// Descriptions
|
||||
@descriptions-title-margin-bottom: 8px;
|
||||
@descriptions-default-padding: 12px @padding-lg;
|
||||
@descriptions-item-padding-bottom: @padding-xs;
|
||||
|
||||
// Avatar
|
||||
// ---
|
||||
@avatar-size-base: 28px;
|
||||
@avatar-size-lg: 32px;
|
||||
@avatar-size-sm: 22px;
|
||||
@avatar-font-size-base: 16px;
|
||||
@avatar-font-size-lg: 20px;
|
||||
@avatar-font-size-sm: 12px;
|
||||
|
||||
// Badge
|
||||
// ---
|
||||
@badge-height: 18px;
|
||||
|
||||
// Tag
|
||||
// ---
|
||||
@tag-line-height: 18px;
|
||||
|
||||
// Notification
|
||||
// ---
|
||||
@notification-padding-vertical: 12px;
|
||||
@notification-padding-horizontal: 16px;
|
||||
|
||||
// Result
|
||||
// ---
|
||||
@result-title-font-size: 20px;
|
||||
@result-icon-font-size: 64px;
|
||||
@result-extra-margin: 24px 0 0 0;
|
||||
|
||||
// Anchor
|
||||
// ---
|
||||
@anchor-link-top: 4px;
|
||||
@anchor-link-left: 16px;
|
||||
@anchor-link-padding: @anchor-link-top 0 @anchor-link-top @anchor-link-left;
|
||||
|
||||
// Tabs
|
||||
// ---
|
||||
@tabs-card-horizontal-padding: 4px @padding-md;
|
||||
|
||||
// Progress
|
||||
// ---
|
||||
@progress-circle-text-font-size: 0.833333em;
|
||||
|
||||
// Image
|
||||
// ---
|
||||
@image-size-base: 48px;
|
||||
@image-font-size-base: 24px;
|
|
@ -1,457 +0,0 @@
|
|||
@import './default.less';
|
||||
|
||||
@theme: dark;
|
||||
// color palettes
|
||||
@blue-1: mix(color(~`colorPalette('@{blue-base}', 8) `), @component-background, 15%);
|
||||
@blue-2: mix(color(~`colorPalette('@{blue-base}', 7) `), @component-background, 25%);
|
||||
@blue-3: mix(@blue-base, @component-background, 30%);
|
||||
@blue-4: mix(@blue-base, @component-background, 45%);
|
||||
@blue-5: mix(@blue-base, @component-background, 65%);
|
||||
@blue-6: mix(@blue-base, @component-background, 85%);
|
||||
@blue-7: mix(color(~`colorPalette('@{blue-base}', 5) `), @component-background, 90%);
|
||||
@blue-8: mix(color(~`colorPalette('@{blue-base}', 4) `), @component-background, 95%);
|
||||
@blue-9: mix(color(~`colorPalette('@{blue-base}', 3) `), @component-background, 97%);
|
||||
@blue-10: mix(color(~`colorPalette('@{blue-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@purple-1: mix(color(~`colorPalette('@{purple-base}', 8) `), @component-background, 15%);
|
||||
@purple-2: mix(color(~`colorPalette('@{purple-base}', 7) `), @component-background, 25%);
|
||||
@purple-3: mix(@purple-base, @component-background, 30%);
|
||||
@purple-4: mix(@purple-base, @component-background, 45%);
|
||||
@purple-5: mix(@purple-base, @component-background, 65%);
|
||||
@purple-6: mix(@purple-base, @component-background, 85%);
|
||||
@purple-7: mix(color(~`colorPalette('@{purple-base}', 5) `), @component-background, 90%);
|
||||
@purple-8: mix(color(~`colorPalette('@{purple-base}', 4) `), @component-background, 95%);
|
||||
@purple-9: mix(color(~`colorPalette('@{purple-base}', 3) `), @component-background, 97%);
|
||||
@purple-10: mix(color(~`colorPalette('@{purple-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@cyan-1: mix(color(~`colorPalette('@{cyan-base}', 8) `), @component-background, 15%);
|
||||
@cyan-2: mix(color(~`colorPalette('@{cyan-base}', 7) `), @component-background, 25%);
|
||||
@cyan-3: mix(@cyan-base, @component-background, 30%);
|
||||
@cyan-4: mix(@cyan-base, @component-background, 45%);
|
||||
@cyan-5: mix(@cyan-base, @component-background, 65%);
|
||||
@cyan-6: mix(@cyan-base, @component-background, 85%);
|
||||
@cyan-7: mix(color(~`colorPalette('@{cyan-base}', 5) `), @component-background, 90%);
|
||||
@cyan-8: mix(color(~`colorPalette('@{cyan-base}', 4) `), @component-background, 95%);
|
||||
@cyan-9: mix(color(~`colorPalette('@{cyan-base}', 3) `), @component-background, 97%);
|
||||
@cyan-10: mix(color(~`colorPalette('@{cyan-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@green-1: mix(color(~`colorPalette('@{green-base}', 8) `), @component-background, 15%);
|
||||
@green-2: mix(color(~`colorPalette('@{green-base}', 7) `), @component-background, 25%);
|
||||
@green-3: mix(@green-base, @component-background, 30%);
|
||||
@green-4: mix(@green-base, @component-background, 45%);
|
||||
@green-5: mix(@green-base, @component-background, 65%);
|
||||
@green-6: mix(@green-base, @component-background, 85%);
|
||||
@green-7: mix(color(~`colorPalette('@{green-base}', 5) `), @component-background, 90%);
|
||||
@green-8: mix(color(~`colorPalette('@{green-base}', 4) `), @component-background, 95%);
|
||||
@green-9: mix(color(~`colorPalette('@{green-base}', 3) `), @component-background, 97%);
|
||||
@green-10: mix(color(~`colorPalette('@{green-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@magenta-1: mix(color(~`colorPalette('@{magenta-base}', 8) `), @component-background, 15%);
|
||||
@magenta-2: mix(color(~`colorPalette('@{magenta-base}', 7) `), @component-background, 25%);
|
||||
@magenta-3: mix(@magenta-base, @component-background, 30%);
|
||||
@magenta-4: mix(@magenta-base, @component-background, 45%);
|
||||
@magenta-5: mix(@magenta-base, @component-background, 65%);
|
||||
@magenta-6: mix(@magenta-base, @component-background, 85%);
|
||||
@magenta-7: mix(color(~`colorPalette('@{magenta-base}', 5) `), @component-background, 90%);
|
||||
@magenta-8: mix(color(~`colorPalette('@{magenta-base}', 4) `), @component-background, 95%);
|
||||
@magenta-9: mix(color(~`colorPalette('@{magenta-base}', 3) `), @component-background, 97%);
|
||||
@magenta-10: mix(color(~`colorPalette('@{magenta-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@pink-1: mix(color(~`colorPalette('@{pink-base}', 8) `), @component-background, 15%);
|
||||
@pink-2: mix(color(~`colorPalette('@{pink-base}', 7) `), @component-background, 25%);
|
||||
@pink-3: mix(@pink-base, @component-background, 30%);
|
||||
@pink-4: mix(@pink-base, @component-background, 45%);
|
||||
@pink-5: mix(@pink-base, @component-background, 65%);
|
||||
@pink-6: mix(@pink-base, @component-background, 85%);
|
||||
@pink-7: mix(color(~`colorPalette('@{pink-base}', 5) `), @component-background, 90%);
|
||||
@pink-8: mix(color(~`colorPalette('@{pink-base}', 4) `), @component-background, 95%);
|
||||
@pink-9: mix(color(~`colorPalette('@{pink-base}', 3) `), @component-background, 97%);
|
||||
@pink-10: mix(color(~`colorPalette('@{pink-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@red-1: mix(color(~`colorPalette('@{red-base}', 8) `), @component-background, 15%);
|
||||
@red-2: mix(color(~`colorPalette('@{red-base}', 7) `), @component-background, 25%);
|
||||
@red-3: mix(@red-base, @component-background, 30%);
|
||||
@red-4: mix(@red-base, @component-background, 45%);
|
||||
@red-5: mix(@red-base, @component-background, 65%);
|
||||
@red-6: mix(@red-base, @component-background, 85%);
|
||||
@red-7: mix(color(~`colorPalette('@{red-base}', 5) `), @component-background, 90%);
|
||||
@red-8: mix(color(~`colorPalette('@{red-base}', 4) `), @component-background, 95%);
|
||||
@red-9: mix(color(~`colorPalette('@{red-base}', 3) `), @component-background, 97%);
|
||||
@red-10: mix(color(~`colorPalette('@{red-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@orange-1: mix(color(~`colorPalette('@{orange-base}', 8) `), @component-background, 15%);
|
||||
@orange-2: mix(color(~`colorPalette('@{orange-base}', 7) `), @component-background, 25%);
|
||||
@orange-3: mix(@orange-base, @component-background, 30%);
|
||||
@orange-4: mix(@orange-base, @component-background, 45%);
|
||||
@orange-5: mix(@orange-base, @component-background, 65%);
|
||||
@orange-6: mix(@orange-base, @component-background, 85%);
|
||||
@orange-7: mix(color(~`colorPalette('@{orange-base}', 5) `), @component-background, 90%);
|
||||
@orange-8: mix(color(~`colorPalette('@{orange-base}', 4) `), @component-background, 95%);
|
||||
@orange-9: mix(color(~`colorPalette('@{orange-base}', 3) `), @component-background, 97%);
|
||||
@orange-10: mix(color(~`colorPalette('@{orange-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@yellow-1: mix(color(~`colorPalette('@{yellow-base}', 8) `), @component-background, 15%);
|
||||
@yellow-2: mix(color(~`colorPalette('@{yellow-base}', 7) `), @component-background, 25%);
|
||||
@yellow-3: mix(@yellow-base, @component-background, 30%);
|
||||
@yellow-4: mix(@yellow-base, @component-background, 45%);
|
||||
@yellow-5: mix(@yellow-base, @component-background, 65%);
|
||||
@yellow-6: mix(@yellow-base, @component-background, 85%);
|
||||
@yellow-7: mix(color(~`colorPalette('@{yellow-base}', 5) `), @component-background, 90%);
|
||||
@yellow-8: mix(color(~`colorPalette('@{yellow-base}', 4) `), @component-background, 95%);
|
||||
@yellow-9: mix(color(~`colorPalette('@{yellow-base}', 3) `), @component-background, 97%);
|
||||
@yellow-10: mix(color(~`colorPalette('@{yellow-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@volcano-1: mix(color(~`colorPalette('@{volcano-base}', 8) `), @component-background, 15%);
|
||||
@volcano-2: mix(color(~`colorPalette('@{volcano-base}', 7) `), @component-background, 25%);
|
||||
@volcano-3: mix(@volcano-base, @component-background, 30%);
|
||||
@volcano-4: mix(@volcano-base, @component-background, 45%);
|
||||
@volcano-5: mix(@volcano-base, @component-background, 65%);
|
||||
@volcano-6: mix(@volcano-base, @component-background, 85%);
|
||||
@volcano-7: mix(color(~`colorPalette('@{volcano-base}', 5) `), @component-background, 90%);
|
||||
@volcano-8: mix(color(~`colorPalette('@{volcano-base}', 4) `), @component-background, 95%);
|
||||
@volcano-9: mix(color(~`colorPalette('@{volcano-base}', 3) `), @component-background, 97%);
|
||||
@volcano-10: mix(color(~`colorPalette('@{volcano-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@geekblue-1: mix(color(~`colorPalette('@{geekblue-base}', 8) `), @component-background, 15%);
|
||||
@geekblue-2: mix(color(~`colorPalette('@{geekblue-base}', 7) `), @component-background, 25%);
|
||||
@geekblue-3: mix(@geekblue-base, @component-background, 30%);
|
||||
@geekblue-4: mix(@geekblue-base, @component-background, 45%);
|
||||
@geekblue-5: mix(@geekblue-base, @component-background, 65%);
|
||||
@geekblue-6: mix(@geekblue-base, @component-background, 85%);
|
||||
@geekblue-7: mix(color(~`colorPalette('@{geekblue-base}', 5) `), @component-background, 90%);
|
||||
@geekblue-8: mix(color(~`colorPalette('@{geekblue-base}', 4) `), @component-background, 95%);
|
||||
@geekblue-9: mix(color(~`colorPalette('@{geekblue-base}', 3) `), @component-background, 97%);
|
||||
@geekblue-10: mix(color(~`colorPalette('@{geekblue-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@lime-1: mix(color(~`colorPalette('@{lime-base}', 8) `), @component-background, 15%);
|
||||
@lime-2: mix(color(~`colorPalette('@{lime-base}', 7) `), @component-background, 25%);
|
||||
@lime-3: mix(@lime-base, @component-background, 30%);
|
||||
@lime-4: mix(@lime-base, @component-background, 45%);
|
||||
@lime-5: mix(@lime-base, @component-background, 65%);
|
||||
@lime-6: mix(@lime-base, @component-background, 85%);
|
||||
@lime-7: mix(color(~`colorPalette('@{lime-base}', 5) `), @component-background, 90%);
|
||||
@lime-8: mix(color(~`colorPalette('@{lime-base}', 4) `), @component-background, 95%);
|
||||
@lime-9: mix(color(~`colorPalette('@{lime-base}', 3) `), @component-background, 97%);
|
||||
@lime-10: mix(color(~`colorPalette('@{lime-base}', 2) `), @component-background, 98%);
|
||||
|
||||
@gold-1: mix(color(~`colorPalette('@{gold-base}', 8) `), @component-background, 15%);
|
||||
@gold-2: mix(color(~`colorPalette('@{gold-base}', 7) `), @component-background, 25%);
|
||||
@gold-3: mix(@gold-base, @component-background, 30%);
|
||||
@gold-4: mix(@gold-base, @component-background, 45%);
|
||||
@gold-5: mix(@gold-base, @component-background, 65%);
|
||||
@gold-6: mix(@gold-base, @component-background, 85%);
|
||||
@gold-7: mix(color(~`colorPalette('@{gold-base}', 5) `), @component-background, 90%);
|
||||
@gold-8: mix(color(~`colorPalette('@{gold-base}', 4) `), @component-background, 95%);
|
||||
@gold-9: mix(color(~`colorPalette('@{gold-base}', 3) `), @component-background, 97%);
|
||||
@gold-10: mix(color(~`colorPalette('@{gold-base}', 2) `), @component-background, 98%);
|
||||
|
||||
// Color used by default to control hover and active backgrounds and for
|
||||
// alert info backgrounds.
|
||||
@primary-1: mix(color(~`colorPalette('@{primary-color}', 8) `), @component-background, 15%);
|
||||
@primary-2: mix(color(~`colorPalette('@{primary-color}', 7) `), @component-background, 25%);
|
||||
@primary-3: mix(@primary-color, @component-background, 30%);
|
||||
@primary-4: mix(@primary-color, @component-background, 45%);
|
||||
@primary-5: mix(@primary-color, @component-background, 65%);
|
||||
@primary-6: @primary-color;
|
||||
@primary-7: mix(color(~`colorPalette('@{primary-color}', 5) `), @component-background, 90%);
|
||||
@primary-8: mix(color(~`colorPalette('@{primary-color}', 4) `), @component-background, 95%);
|
||||
@primary-9: mix(color(~`colorPalette('@{primary-color}', 3) `), @component-background, 97%);
|
||||
@primary-10: mix(color(~`colorPalette('@{primary-color}', 2) `), @component-background, 98%);
|
||||
|
||||
// Layer background
|
||||
@popover-background: #1f1f1f;
|
||||
@popover-customize-border-color: #3a3a3a;
|
||||
@body-background: @black;
|
||||
@component-background: #141414;
|
||||
|
||||
@text-color: fade(@white, 85%);
|
||||
@text-color-secondary: fade(@white, 45%);
|
||||
@text-color-inverse: @white;
|
||||
@icon-color-hover: fade(@white, 75%);
|
||||
@heading-color: fade(@white, 85%);
|
||||
|
||||
// The background colors for active and hover states for things like
|
||||
// list items or table cells.
|
||||
@item-active-bg: @primary-1;
|
||||
@item-hover-bg: fade(@white, 8%);
|
||||
|
||||
// Border color
|
||||
@border-color-base: #434343; // base border outline a component
|
||||
@border-color-split: #303030; // split border inside a component
|
||||
|
||||
@background-color-light: fade(@white, 4%); // background of header and selected item
|
||||
@background-color-base: fade(@white, 8%); // Default grey background color
|
||||
|
||||
// Disabled states
|
||||
@disabled-color: fade(@white, 30%);
|
||||
@disabled-bg: @background-color-base;
|
||||
@disabled-color-dark: fade(@white, 30%);
|
||||
|
||||
// Tree
|
||||
// ---
|
||||
@tree-bg: transparent;
|
||||
|
||||
// List
|
||||
// ---
|
||||
@list-customize-card-bg: transparent;
|
||||
|
||||
// Shadow
|
||||
// ---
|
||||
@shadow-color: rgba(0, 0, 0, 0.45);
|
||||
@shadow-color-inverse: @component-background;
|
||||
@box-shadow-base: @shadow-2;
|
||||
@shadow-1-up: 0 -6px 16px -8px rgba(0, 0, 0, 0.32), 0 -9px 28px 0 rgba(0, 0, 0, 0.2),
|
||||
0 -12px 48px 16px rgba(0, 0, 0, 0.12);
|
||||
@shadow-1-down: 0 6px 16px -8px rgba(0, 0, 0, 0.32), 0 9px 28px 0 rgba(0, 0, 0, 0.2),
|
||||
0 12px 48px 16px rgba(0, 0, 0, 0.12);
|
||||
@shadow-1-right: 6px 0 16px -8px rgba(0, 0, 0, 0.32), 9px 0 28px 0 rgba(0, 0, 0, 0.2),
|
||||
12px 0 48px 16px rgba(0, 0, 0, 0.12);
|
||||
@shadow-2: 0 3px 6px -4px rgba(0, 0, 0, 0.48), 0 6px 16px 0 rgba(0, 0, 0, 0.32),
|
||||
0 9px 28px 8px rgba(0, 0, 0, 0.2);
|
||||
|
||||
// Buttons
|
||||
// ---
|
||||
@btn-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);
|
||||
@btn-primary-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
|
||||
@btn-text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);
|
||||
|
||||
@btn-default-bg: transparent;
|
||||
|
||||
@btn-default-ghost-color: @text-color;
|
||||
@btn-default-ghost-border: fade(@white, 25%);
|
||||
|
||||
@btn-text-hover-bg: rgba(255, 255, 255, 0.03);
|
||||
|
||||
// Checkbox
|
||||
// ---
|
||||
@checkbox-check-bg: transparent;
|
||||
|
||||
// Descriptions
|
||||
// ---
|
||||
@descriptions-bg: @background-color-light;
|
||||
|
||||
// Divider
|
||||
// ---
|
||||
@divider-color: rgba(255, 255, 255, 12%);
|
||||
|
||||
// Modal
|
||||
// ---
|
||||
@modal-header-bg: @popover-background;
|
||||
@modal-header-border-color-split: @border-color-split;
|
||||
@modal-content-bg: @popover-background;
|
||||
@modal-footer-border-color-split: @border-color-split;
|
||||
|
||||
// Radio
|
||||
// ---
|
||||
@radio-solid-checked-color: @white;
|
||||
@radio-dot-disabled-color: fade(@white, 20%);
|
||||
|
||||
// Radio buttons
|
||||
// ---
|
||||
@radio-disabled-button-checked-bg: fade(@white, 20%);
|
||||
@radio-disabled-button-checked-color: @disabled-color;
|
||||
|
||||
// Layout
|
||||
// ---
|
||||
@layout-body-background: @body-background;
|
||||
@layout-header-background: @popover-background;
|
||||
@layout-trigger-background: #262626;
|
||||
|
||||
// Input
|
||||
// ---
|
||||
@input-bg: transparent;
|
||||
@input-placeholder-color: fade(@white, 30%);
|
||||
@input-icon-color: fade(@white, 30%);
|
||||
@input-number-handler-active-bg: @item-hover-bg;
|
||||
@input-icon-hover-color: fade(@white, 85%);
|
||||
|
||||
// Select
|
||||
// ---
|
||||
@select-background: transparent;
|
||||
@select-dropdown-bg: @popover-background;
|
||||
@select-clear-background: @component-background;
|
||||
@select-selection-item-bg: fade(@white, 8);
|
||||
@select-selection-item-border-color: @border-color-split;
|
||||
@select-multiple-disabled-background: @component-background;
|
||||
@select-multiple-item-disabled-color: #595959;
|
||||
@select-multiple-item-disabled-border-color: @popover-background;
|
||||
|
||||
// Cascader
|
||||
// ---
|
||||
@cascader-bg: transparent;
|
||||
@cascader-menu-bg: @popover-background;
|
||||
@cascader-menu-border-color-split: @border-color-split;
|
||||
|
||||
// Tooltip
|
||||
// ---
|
||||
// Tooltip background color
|
||||
@tooltip-bg: #434343;
|
||||
|
||||
// Menu
|
||||
// ---
|
||||
// dark theme
|
||||
@menu-dark-inline-submenu-bg: @component-background;
|
||||
@menu-dark-bg: @popover-background;
|
||||
@menu-popup-bg: @popover-background;
|
||||
|
||||
// Message
|
||||
// ---
|
||||
@message-notice-content-bg: @popover-background;
|
||||
|
||||
// Notification
|
||||
@notification-bg: @popover-background;
|
||||
|
||||
// LINK
|
||||
@link-hover-color: @primary-5;
|
||||
@link-active-color: @primary-7;
|
||||
|
||||
// Table
|
||||
// --
|
||||
@table-header-bg: #1d1d1d;
|
||||
@table-body-sort-bg: fade(@white, 1%);
|
||||
@table-row-hover-bg: #262626;
|
||||
@table-header-cell-split-color: fade(@white, 8%);
|
||||
@table-header-sort-bg: #262626;
|
||||
@table-header-filter-active-bg: #434343;
|
||||
@table-header-sort-active-bg: #303030;
|
||||
@table-fixed-header-sort-active-bg: #222;
|
||||
@table-filter-btns-bg: @popover-background;
|
||||
@table-expanded-row-bg: @table-header-bg;
|
||||
@table-filter-dropdown-bg: @popover-background;
|
||||
@table-expand-icon-bg: transparent;
|
||||
|
||||
// Tag
|
||||
// ---
|
||||
@info-color-deprecated-bg: @primary-1;
|
||||
@info-color-deprecated-border: @primary-3;
|
||||
@success-color-deprecated-bg: @green-1;
|
||||
@success-color-deprecated-border: @green-3;
|
||||
@warning-color-deprecated-bg: @orange-1;
|
||||
@warning-color-deprecated-border: @orange-3;
|
||||
@error-color-deprecated-bg: @red-1;
|
||||
@error-color-deprecated-border: @red-3;
|
||||
|
||||
// TimePicker
|
||||
// ---
|
||||
@picker-basic-cell-hover-with-range-color: darken(@primary-color, 35%);
|
||||
@picker-basic-cell-disabled-bg: #303030;
|
||||
@picker-border-color: @border-color-split;
|
||||
@picker-bg: transparent;
|
||||
@picker-date-hover-range-border-color: darken(@primary-color, 20%);
|
||||
|
||||
// Dropdown
|
||||
// ---
|
||||
@dropdown-menu-bg: @popover-background;
|
||||
@dropdown-menu-submenu-disabled-bg: transparent;
|
||||
|
||||
// Steps
|
||||
// ---
|
||||
@steps-nav-arrow-color: fade(@white, 20%);
|
||||
@steps-background: transparent;
|
||||
|
||||
// Avatar
|
||||
// ---
|
||||
@avatar-bg: fade(@white, 30%);
|
||||
|
||||
// Progress
|
||||
// ---
|
||||
@progress-steps-item-bg: fade(@white, 8%);
|
||||
|
||||
// Calendar
|
||||
// ---
|
||||
@calendar-bg: @popover-background;
|
||||
@calendar-input-bg: @calendar-bg;
|
||||
@calendar-border-color: transparent;
|
||||
@calendar-full-bg: @component-background;
|
||||
|
||||
// Badge
|
||||
// ---
|
||||
@badge-text-color: @white;
|
||||
|
||||
// Popover
|
||||
@popover-bg: @popover-background;
|
||||
|
||||
// Drawer
|
||||
@drawer-bg: @popover-background;
|
||||
|
||||
// Card
|
||||
// ---
|
||||
@card-actions-background: @component-background;
|
||||
@card-skeleton-bg: #303030;
|
||||
@card-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.64), 0 3px 6px 0 rgba(0, 0, 0, 0.48),
|
||||
0 5px 12px 4px rgba(0, 0, 0, 0.36);
|
||||
|
||||
// Transfer
|
||||
// ---
|
||||
@transfer-item-hover-bg: #262626;
|
||||
|
||||
// Comment
|
||||
// ---
|
||||
@comment-bg: transparent;
|
||||
@comment-author-time-color: fade(@white, 30%);
|
||||
@comment-action-hover-color: fade(@white, 65%);
|
||||
|
||||
// Rate
|
||||
// ---
|
||||
@rate-star-bg: fade(@white, 12%);
|
||||
|
||||
// Switch
|
||||
// ---
|
||||
@switch-bg: @white;
|
||||
|
||||
// Pagination
|
||||
// ---
|
||||
@pagination-item-bg: transparent;
|
||||
@pagination-item-bg-active: transparent;
|
||||
@pagination-item-link-bg: transparent;
|
||||
@pagination-item-disabled-bg-active: fade(@white, 25%);
|
||||
@pagination-item-disabled-color-active: @black;
|
||||
@pagination-item-input-bg: @pagination-item-bg;
|
||||
|
||||
// PageHeader
|
||||
// ---
|
||||
@page-header-back-color: @icon-color;
|
||||
@page-header-ghost-bg: transparent;
|
||||
|
||||
// Slider
|
||||
// ---
|
||||
@slider-rail-background-color: #262626;
|
||||
@slider-rail-background-color-hover: @border-color-base;
|
||||
@slider-dot-border-color: @border-color-split;
|
||||
@slider-dot-border-color-active: @primary-4;
|
||||
|
||||
// Skeleton
|
||||
// ---
|
||||
@skeleton-to-color: fade(@white, 16%);
|
||||
|
||||
// Alert
|
||||
// ---
|
||||
@alert-success-border-color: @green-3;
|
||||
@alert-success-bg-color: @green-1;
|
||||
@alert-success-icon-color: @success-color;
|
||||
@alert-info-border-color: @primary-3;
|
||||
@alert-info-bg-color: @primary-1;
|
||||
@alert-info-icon-color: @info-color;
|
||||
@alert-warning-border-color: @gold-3;
|
||||
@alert-warning-bg-color: @gold-1;
|
||||
@alert-warning-icon-color: @warning-color;
|
||||
@alert-error-border-color: @red-3;
|
||||
@alert-error-bg-color: @red-1;
|
||||
@alert-error-icon-color: @error-color;
|
||||
|
||||
// Timeline
|
||||
// ---
|
||||
@timeline-color: @border-color-split;
|
||||
@timeline-dot-color: @primary-color;
|
||||
|
||||
// Mentions
|
||||
// ---
|
||||
@mentions-dropdown-bg: @popover-background;
|
||||
|
||||
// Segmented
|
||||
// ---
|
||||
@segmented-bg: fade(@black, 25%);
|
||||
@segmented-hover-bg: fade(@black, 45%);
|
||||
@segmented-selected-bg: #333333;
|
||||
@segmented-label-color: fade(@white, 65%);
|
||||
@segmented-label-hover-color: fade(@white, 85%);
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +0,0 @@
|
|||
// Default using variable as entry to support site variable version
|
||||
// This will be replaced in webpack bundle
|
||||
// @root-entry-name: variable;
|
||||
|
||||
// @import './default.less';
|
||||
// @import './variable.less';
|
||||
@import './@{root-entry-name}.less';
|
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +0,0 @@
|
|||
@root-entry-name: variable;
|
||||
|
||||
@import './themes/variable.less';
|
||||
@import './core/index';
|
Loading…
Reference in New Issue