branch-commit-compare
Version:
Git branch comparison tool
681 lines (550 loc) • 11 kB
CSS
/**
* Utility Classes 工具类
* Neumorphism Design System - Utility Classes
*/
/* ========== Display 显示 ========== */
.hidden {
display: none ;
}
.block {
display: block ;
}
.inline-block {
display: inline-block ;
}
.flex {
display: flex ;
}
.inline-flex {
display: inline-flex ;
}
/* ========== Visibility 可见性 ========== */
.invisible {
visibility: hidden ;
}
.visible {
visibility: visible ;
}
/* ========== Flex Direction 弹性方向 ========== */
.flex-row {
flex-direction: row ;
}
.flex-col {
flex-direction: column ;
}
/* ========== Flex Wrap 弹性换行 ========== */
.flex-wrap {
flex-wrap: wrap ;
}
.flex-nowrap {
flex-wrap: nowrap ;
}
/* ========== Justify Content 主轴对齐 ========== */
.justify-start {
justify-content: flex-start ;
}
.justify-center {
justify-content: center ;
}
.justify-end {
justify-content: flex-end ;
}
.justify-between {
justify-content: space-between ;
}
/* ========== Align Items 交叉轴对齐 ========== */
.items-start {
align-items: flex-start ;
}
.items-center {
align-items: center ;
}
.items-end {
align-items: flex-end ;
}
/* ========== Text Alignment 文本对齐 ========== */
.text-left {
text-align: left ;
}
.text-center {
text-align: center ;
}
.text-right {
text-align: right ;
}
/* ========== Text Transform 文本转换 ========== */
.uppercase {
text-transform: uppercase ;
}
.lowercase {
text-transform: lowercase ;
}
.capitalize {
text-transform: capitalize ;
}
/* ========== Font Weight 字体粗细 ========== */
.font-normal {
font-weight: var(--font-weight-normal) ;
}
.font-medium {
font-weight: var(--font-weight-medium) ;
}
.font-semibold {
font-weight: var(--font-weight-semibold) ;
}
.font-bold {
font-weight: var(--font-weight-bold) ;
}
.font-extrabold {
font-weight: var(--font-weight-extrabold) ;
}
/* ========== Font Size 字体大小 ========== */
.text-xs {
font-size: var(--font-size-xs) ;
}
.text-sm {
font-size: var(--font-size-sm) ;
}
.text-base {
font-size: var(--font-size-base) ;
}
.text-lg {
font-size: var(--font-size-lg) ;
}
.text-xl {
font-size: var(--font-size-xl) ;
}
/* ========== Color 颜色 ========== */
.text-muted {
color: var(--color-muted) ;
}
.text-fg {
color: var(--color-fg) ;
}
.text-success {
color: var(--color-success) ;
}
.text-warning {
color: var(--color-warning) ;
}
.text-danger {
color: var(--color-danger) ;
}
.text-info {
color: var(--color-info) ;
}
/* ========== Margin 外边距 ========== */
.m-0 {
margin: 0 ;
}
.m-1 {
margin: var(--spacing-1) ;
}
.m-2 {
margin: var(--spacing-2) ;
}
.m-3 {
margin: var(--spacing-3) ;
}
.m-4 {
margin: var(--spacing-4) ;
}
.m-5 {
margin: var(--spacing-5) ;
}
.m-6 {
margin: var(--spacing-6) ;
}
.m-8 {
margin: var(--spacing-8) ;
}
.mt-0 {
margin-top: 0 ;
}
.mt-2 {
margin-top: var(--spacing-2) ;
}
.mt-3 {
margin-top: var(--spacing-3) ;
}
.mt-4 {
margin-top: var(--spacing-4) ;
}
.mt-6 {
margin-top: var(--spacing-6) ;
}
.mt-8 {
margin-top: var(--spacing-8) ;
}
.mb-0 {
margin-bottom: 0 ;
}
.mb-2 {
margin-bottom: var(--spacing-2) ;
}
.mb-3 {
margin-bottom: var(--spacing-3) ;
}
.mb-4 {
margin-bottom: var(--spacing-4) ;
}
.mb-6 {
margin-bottom: var(--spacing-6) ;
}
.mb-8 {
margin-bottom: var(--spacing-8) ;
}
.ml-0 {
margin-left: 0 ;
}
.ml-2 {
margin-left: var(--spacing-2) ;
}
.ml-3 {
margin-left: var(--spacing-3) ;
}
.ml-4 {
margin-left: var(--spacing-4) ;
}
.ml-auto {
margin-left: auto ;
}
.mr-0 {
margin-right: 0 ;
}
.mr-2 {
margin-right: var(--spacing-2) ;
}
.mr-3 {
margin-right: var(--spacing-3) ;
}
.mr-4 {
margin-right: var(--spacing-4) ;
}
.mr-auto {
margin-right: auto ;
}
/* ========== Padding 内边距 ========== */
.p-0 {
padding: 0 ;
}
.p-2 {
padding: var(--spacing-2) ;
}
.p-3 {
padding: var(--spacing-3) ;
}
.p-4 {
padding: var(--spacing-4) ;
}
.p-5 {
padding: var(--spacing-5) ;
}
.p-6 {
padding: var(--spacing-6) ;
}
.p-8 {
padding: var(--spacing-8) ;
}
.pt-2 {
padding-top: var(--spacing-2) ;
}
.pt-3 {
padding-top: var(--spacing-3) ;
}
.pt-4 {
padding-top: var(--spacing-4) ;
}
.pt-6 {
padding-top: var(--spacing-6) ;
}
.pb-2 {
padding-bottom: var(--spacing-2) ;
}
.pb-3 {
padding-bottom: var(--spacing-3) ;
}
.pb-4 {
padding-bottom: var(--spacing-4) ;
}
.pb-6 {
padding-bottom: var(--spacing-6) ;
}
.pl-2 {
padding-left: var(--spacing-2) ;
}
.pl-3 {
padding-left: var(--spacing-3) ;
}
.pl-4 {
padding-left: var(--spacing-4) ;
}
.pl-6 {
padding-left: var(--spacing-6) ;
}
.pr-2 {
padding-right: var(--spacing-2) ;
}
.pr-3 {
padding-right: var(--spacing-3) ;
}
.pr-4 {
padding-right: var(--spacing-4) ;
}
.pr-6 {
padding-right: var(--spacing-6) ;
}
/* ========== Gap 间距 ========== */
.gap-1 {
gap: var(--spacing-1) ;
}
.gap-2 {
gap: var(--spacing-2) ;
}
.gap-3 {
gap: var(--spacing-3) ;
}
.gap-4 {
gap: var(--spacing-4) ;
}
.gap-5 {
gap: var(--spacing-5) ;
}
.gap-6 {
gap: var(--spacing-6) ;
}
/* ========== Width 宽度 ========== */
.w-full {
width: 100% ;
}
.w-auto {
width: auto ;
}
/* ========== Height 高度 ========== */
.h-full {
height: 100% ;
}
.h-auto {
height: auto ;
}
/* ========== Cursor 光标 ========== */
.cursor-pointer {
cursor: pointer ;
}
.cursor-not-allowed {
cursor: not-allowed ;
}
.cursor-default {
cursor: default ;
}
/* ========== Opacity 透明度 ========== */
.opacity-0 {
opacity: 0 ;
}
.opacity-50 {
opacity: 0.5 ;
}
.opacity-75 {
opacity: 0.75 ;
}
.opacity-100 {
opacity: 1 ;
}
/* ========== Overflow 溢出 ========== */
.overflow-hidden {
overflow: hidden ;
}
.overflow-auto {
overflow: auto ;
}
.overflow-scroll {
overflow: scroll ;
}
/* ========== Position 定位 ========== */
.relative {
position: relative ;
}
.absolute {
position: absolute ;
}
.fixed {
position: fixed ;
}
.sticky {
position: sticky ;
}
/* ========== Z-Index 层级 ========== */
.z-10 {
z-index: 10 ;
}
.z-20 {
z-index: 20 ;
}
.z-50 {
z-index: 50 ;
}
.z-100 {
z-index: 100 ;
}
/* ========== Border Radius 圆角 ========== */
.rounded-none {
border-radius: 0 ;
}
.rounded-sm {
border-radius: var(--radius-sm) ;
}
.rounded {
border-radius: var(--radius-md) ;
}
.rounded-lg {
border-radius: var(--radius-lg) ;
}
.rounded-xl {
border-radius: var(--radius-xl) ;
}
.rounded-full {
border-radius: var(--radius-full) ;
}
/* ========== Transitions 过渡 ========== */
.transition-all {
transition: all var(--transition-base) ;
}
.transition-fast {
transition: all var(--transition-fast) ;
}
.transition-none {
transition: none ;
}
/* ========== Transform 变换 ========== */
.scale-95 {
transform: scale(0.95) ;
}
.scale-100 {
transform: scale(1) ;
}
.scale-105 {
transform: scale(1.05) ;
}
/* ========== Pointer Events 指针事件 ========== */
.pointer-events-none {
pointer-events: none ;
}
.pointer-events-auto {
pointer-events: auto ;
}
/* ========== User Select 用户选择 ========== */
.select-none {
user-select: none ;
}
.select-text {
user-select: text ;
}
.select-all {
user-select: all ;
}
/* ========== Highlight 高亮 ========== */
.highlight {
background: var(--color-tertiary);
border-radius: var(--radius-sm);
padding: 2px 6px;
border: 1px solid var(--color-fg);
box-shadow: var(--shadow-small);
font-weight: var(--font-weight-bold);
color: var(--color-fg);
display: inline;
}
/* 可选的高亮样式 */
.highlight-accent {
background: var(--color-accent);
color: white;
border-radius: var(--radius-sm);
padding: 2px 6px;
border: 1px solid var(--color-fg);
box-shadow: var(--shadow-small);
font-weight: var(--font-weight-bold);
display: inline;
}
.highlight-secondary {
background: var(--color-secondary);
color: white;
border-radius: var(--radius-sm);
padding: 2px 6px;
border: 1px solid var(--color-fg);
box-shadow: var(--shadow-small);
font-weight: var(--font-weight-bold);
display: inline;
}
.highlight-underline {
background: transparent;
border-bottom: 3px solid var(--color-tertiary);
padding: 0 2px;
font-weight: var(--font-weight-bold);
color: var(--color-fg);
display: inline;
}
/* ========== Scrollbar Styling 滚动条样式 ========== */
.custom-scrollbar::-webkit-scrollbar {
width: 10px;
height: 10px;
}
.custom-scrollbar::-webkit-scrollbar-track {
background: var(--color-bg);
border-radius: var(--radius-full);
border: 1px solid var(--color-border);
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background: var(--color-accent);
border-radius: var(--radius-full);
border: 1px solid var(--color-fg);
transition: background var(--transition-fast);
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
background: var(--color-accent-light);
}
/* ========== Playful Animations 趣味动画 ========== */
.bounce-in {
animation: bounceIn 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes bounceIn {
0% {
opacity: 0;
transform: scale(0.3);
}
50% {
opacity: 1;
transform: scale(1.05);
}
70% {
transform: scale(0.9);
}
100% {
transform: scale(1);
}
}
.wiggle {
animation: wiggle 0.5s ease-in-out;
}
@keyframes wiggle {
0%,
100% {
transform: rotate(0deg);
}
25% {
transform: rotate(3deg);
}
75% {
transform: rotate(-3deg);
}
}
.float {
animation: float 3s ease-in-out infinite;
}
@keyframes float {
0%,
100% {
transform: translateY(0px);
}
50% {
transform: translateY(-10px);
}
}