UNPKG

mealcomes

Version:

MealComes 用于学习前端的组件库

165 lines (158 loc) 4.64 kB
.mc-checkbox-wrapper { --mc-checkbox-font-size: var(--mc-font-size-base); --mc-checkbox-font-weight: var(--mc-font-weight-primary); --mc-checkbox-border-radius: var(--mc-border-radius-small); --mc-checkbox-text-color: var(--mc-text-color-primary); --mc-checkbox-hover-border-color: var(--mc-color-primary); --mc-checkbox-checked-icon-color: var(--mc-color-white); --mc-checkbox-checked-bg-color: var(--mc-color-primary); --mc-checkbox-indeterminate-icon-color: var(--mc-color-primary); --mc-checkbox-indeterminate-bg-color: var(--mc-color-white); --mc-checkbox-disabled-checked-icon-color: var(--mc-text-color-placeholder); --mc-checkbox-disabled-indeterminate-icon-color: var(--mc-text-color-placeholder); } .mc-checkbox-wrapper { position: relative; display: inline-flex; align-items: center; user-select: none; color: var(--mc-checkbox-text-color); font-size: var(--mc-checkbox-font-size); cursor: pointer; transition: var(--mc-transition-color); } .mc-checkbox-wrapper input[type=checkbox] { margin: 0; width: 0; height: 0; } .mc-checkbox-wrapper.is-disabled { cursor: not-allowed; color: var(--mc-disabled-text-color); } .mc-checkbox-wrapper .mc-checkbox { position: relative; padding: 0; margin: 0; width: 1em; height: 1em; border-radius: var(--mc-checkbox-border-radius); border: var(--mc-border); } .mc-checkbox-wrapper .mc-checkbox--inner { position: absolute; padding: 0; width: 1em; height: 1em; border-radius: var(--mc-checkbox-border-radius); opacity: 0; } .mc-checkbox-wrapper .mc-checkbox.is-checked { border-color: var(--mc-color-primary); background-color: var(--mc-checkbox-checked-bg-color); } .mc-checkbox-wrapper .mc-checkbox.is-checked::before { content: ""; position: absolute; width: calc(1em + 2 * var(--mc-border-width)); height: calc(1em + 2 * var(--mc-border-width)); left: calc(0px - var(--mc-border-width)); top: calc(0px - var(--mc-border-width)); border-radius: 3px; opacity: 0; background-color: var(--mc-checkbox-checked-bg-color); animation: border-appear 0.2s ease-in both; } .mc-checkbox-wrapper .mc-checkbox.is-checked .mc-checkbox--inner { opacity: 1; } .mc-checkbox-wrapper .mc-checkbox.is-checked .mc-checkbox--inner::before { content: ""; position: absolute; width: 0.625em; height: 0.375em; left: calc(50% - 0.3125em); top: calc(50% - 0.25em); box-sizing: border-box; border-style: var(--mc-border-style); border-color: transparent transparent var(--mc-checkbox-checked-icon-color) var(--mc-checkbox-checked-icon-color); border-width: 0 0 2px 2px; transform: rotate(-45deg); animation: point-appear 0.1s ease-in 0.1s backwards; } .mc-checkbox-wrapper .mc-checkbox.is-indeterminate { background-color: var(--mc-checkbox-indeterminate-bg-color); border: var(--mc-border); } .mc-checkbox-wrapper .mc-checkbox.is-indeterminate .mc-checkbox--inner { opacity: 1; } .mc-checkbox-wrapper .mc-checkbox.is-indeterminate .mc-checkbox--inner::after { content: ""; position: absolute; width: 0.625em; height: 0.625em; left: calc(50% - 0.3125em); top: calc(50% - 0.3125em); box-sizing: border-box; background-color: var(--mc-checkbox-indeterminate-icon-color); animation: square-appear 0.1s ease-in 0.1s backwards; } .mc-checkbox-wrapper .mc-checkbox.is-disabled { pointer-events: none; border-color: var(--mc-disabled-border-color); background-color: var(--mc-disabled-bg-color); } .mc-checkbox-wrapper .mc-checkbox.is-disabled .mc-checkbox--inner::before { border-color: transparent transparent var(--mc-checkbox-disabled-checked-icon-color) var(--mc-checkbox-disabled-checked-icon-color); } .mc-checkbox-wrapper .mc-checkbox.is-disabled .mc-checkbox--inner::after { background-color: var(--mc-checkbox-disabled-indeterminate-icon-color); } .mc-checkbox-wrapper .mc-checkbox.is-disabled::before { animation: none; } .mc-checkbox-wrapper:hover :not(.is-disabled).mc-checkbox { border-color: var(--mc-checkbox-hover-border-color); } .mc-checkbox-wrapper span { padding: 0 5px; } @keyframes point-appear { 0% { transform: rotate(-45deg) scale(0); opacity: 0; } 70% { transform: rotate(-45deg) scale(1.2); opacity: 1; } 100% { transform: rotate(-45deg) scale(1); opacity: 1; } } @keyframes square-appear { 0% { transform: scale(0); opacity: 0; } 70% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 1; } } @keyframes border-appear { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(1.4); opacity: 0; } }