UNPKG

unique-interface

Version:

无UI组件库

385 lines (379 loc) 8.23 kB
/* * Styles for basic components * * Include: * ui-row * ui-col * ui-link * ui-tag * ui-input * ui-button * ui-backdrop (class only) * ui-caret (class only) * * Nice to meet you * */ /* row */ .ui-row { display: flex; align-items: stretch; // justify .is-justify(@type){ &.is-justify-@{type} { justify-content: @type; } } .is-justify(end); .is-justify(center); .is-justify(space-around); .is-justify(space-between); // align .is-align(@type){ &.is-align-@{type} { align-items: @type; } } .is-align(flex-start); .is-align(center); .is-align(flex-end); // separate &.is-separate { margin-left: -@block-outer-vertical / 2; margin-right: -@block-outer-vertical / 2; } } /* col */ .ui-col { box-sizing: border-box; width: 0%; .ui-row.is-separate > & { margin-left: @block-outer-vertical / 2; margin-right: @block-outer-vertical / 2; } } .ui-col-0 { flex: 0 0 auto; width: auto; } .ui-cols(6); .ui-cols(@n) when (@n > 0) { .ui-cols(@n - 1); .ui-col-@{n} { flex: @n 0 auto; } } /* text */ .ui-text { overflow: hidden; } .ui-text-frame { position: relative; overflow: hidden; } .ui-text-right-bar { float: right; margin-bottom: -1px; } .ui-text-placeholder { float: right; clear: right; height: 1px; opacity: 0; } .ui-text-ghost { position: absolute; z-index: 1; top: 0; bottom: 0; left: 100%; width: 100%; user-select: none; } .ui-text-ghost::before { content: "\200B"; float: right; width: 50%; height: 100%; } .ui-text-left-bar { height: 100%; width: 50%; float: right; } .ui-text-ellipsis { float: right; width: 50%; transform: translate(-100%, 0); } .ui-text-ellipsis-content { float: right; transform: translate(0, -100%); } .ui-text-content-movement { visibility: hidden; pointer-events: none; } .ui-text.is-openable { .ui-text-ellipsis-content { cursor: pointer; color: @text-color-openable-ellipsis; &:hover { text-decoration: underline; } } } .ui-text.is-open { .ui-text-ghost, .ui-text-right-bar, .ui-text-placeholder, .ui-text-content-movement { display: none; } } /* link */ .ui-link { color: @color-primary; cursor: pointer; &:hover { text-decoration: underline; } } /* tag */ .ui-tag { display: inline-block; line-height: 1; padding: @tag-inner-vertical @tag-inner-horizontal; border-radius: @tag-border-radius; } .ui-tag-closer { margin-left: .5em; &::before { cursor: pointer; content: "╳"; } } .ui-tag-primary { color: @tag-color-primary; background-color: @tag-color-primary-bg; } .ui-tag-info { color: @tag-color-info; background-color: @tag-color-info-bg; } .ui-tag-group { margin: (-@tag-outer-horizontal / 2) (-@tag-outer-vertical / 2); .ui-tag { margin: (@tag-outer-horizontal / 2) (@tag-outer-vertical / 2); } } /* dropdown */ .ui-dropdown { position: relative; display: inline-block; } .ui-dropdown-hover { position: relative; & .ui-dropdown-menu { display: none; } &:hover .ui-dropdown-menu { display: unset; } } .ui-dropdown-menu { .shape-dropdown-menu(); } .ui-dropdown-menu-panel { .shape-dropdown-menu-panel(); } .ui-dropdown-item { display: block; padding: @shape-dropdown-item-inner-vertical @shape-dropdown-item-inner-horizontal; font-size: @shape-dropdown-item-font-size; line-height: @shape-dropdown-item-line-height; color: @color-text-regular; cursor: pointer; white-space: nowrap; &:hover { background-color: @color-bg-active-regular; } } /* input */ .ui-input { position: relative; vertical-align: middle; display: block; width: 100%; } .ui-input-border { border-radius: @border-radius-base; border: @unit-border; height: 100%; box-sizing: border-box; display: flex; overflow: hidden; } .ui-input-border-negative { margin: -@unit-border-width; flex: 1 1 auto; // height: calc(~"100% + "@unit-border-width * 2); } .ui-input-input { appearance: none; background-color: transparent; border: none; box-sizing: border-box; display: block; font-size: @unit-font-size; line-height: @unit-line-height; min-height: 100%; outline: none; padding: @unit-inner-vertical @unit-inner-horizontal; resize: none; width: 100%; .ui-input.is-have-prefix & { padding-left: @unit-inner-horizontal * 2 + @unit-font-size; } .ui-input.is-have-suffix & { padding-right: @unit-inner-horizontal * 2 + @unit-font-size; } } .ui-input-prefix, .ui-input-suffix { padding: 0 @unit-inner-horizontal; height: @unit-height; line-height: @unit-height; position: absolute; top: 0; } .ui-input-prefix { left: 0; } .ui-input-suffix { right: 0; } .ui-input-dropdown-menu { margin-top: -@unit-border-width; } .ui-input-dropdown-item { white-space: normal; } /* button */ .ui-button { box-sizing: border-box; display: inline-block; height: @unit-height; padding: @unit-inner-vertical 1em; line-height: @unit-line-height; background-color: transparent; border: @unit-border-width @unit-border-style transparent; border-radius: @border-radius-base; font-size: @unit-font-size; text-align: center; vertical-align: middle; cursor: pointer; outline: none; &.is-block { display: block; width: 100%; } &.is-round { border-radius: @unit-height; } &.is-disabled, &.is-disabled:hover { cursor: not-allowed; border-color: @color-disabled-bg; background-color: @color-disabled-bg; color: @color-disabled; } } .ui-button-border-negative { margin: -@unit-border-width; } .ui-button-default { border-color: @color-border-regular; background-color: @color-white; color: @color-text-regular; &:hover { background-color: @color-bg-active-regular; } } .ui-button-primary { border-color: @color-primary; background-color: @color-primary; color: @button-color-text-primary; &:hover { border-color: @color-primary-dark-1; background-color: @color-primary-dark-1; } } // 不太对 // .ui-button-info { // border-color: @color-info; // background-color: @color-info; // color: @color-text-alt; // &:hover { // border-color: @color-info-dark-1; // background-color: @color-info-dark-1; // } // } .ui-button-size-sm { font-size: @unit-font-size-sm; height: @unit-height-sm; line-height: @unit-line-height-sm; padding: @unit-inner-vertical-sm 1em; } .ui-button-size-xs { font-size: @unit-font-size-xs; height: @unit-height-xs; line-height: @unit-line-height-xs; padding: @unit-inner-vertical-xs 1em; } /* button group */ .ui-button-group .ui-button { border-left-width: 0; border-radius: 0; &:first-child { border-left-width: @unit-border-width; border-radius: @button-group-border-radius 0 0 @button-group-border-radius; } &:last-child { border-radius: 0 @button-group-border-radius @button-group-border-radius 0; } } /* backdrop */ .ui-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: @color-backdrop; overflow: auto; z-index: 1000; } /* caret */ .ui-caret { display: inline-block; width: 0; height: 0; vertical-align: middle; border: 4px solid transparent; margin: -2px 3px 0; &.is-top { border-top-color: currentcolor; border-bottom-width: 0; } &.is-bottom { border-bottom-color: currentcolor; border-top-width: 0; } &.is-left { border-left-color: currentcolor; border-right-width: 0; } &.is-right { border-right-color: currentcolor; border-left-width: 0; } }