Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -22,6 +22,26 @@
|
||||
--transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
--neon-shadow: 0 0 10px rgba(76, 175, 80, 0.3);
|
||||
--neon-shadow-hover: 0 0 20px rgba(76, 175, 80, 0.5);
|
||||
|
||||
/* 新增设计规范变量 */
|
||||
--font-size-xs: 0.75rem;
|
||||
--font-size-sm: 0.875rem;
|
||||
--font-size-base: 1rem;
|
||||
--font-size-lg: 1.125rem;
|
||||
--font-size-xl: 1.25rem;
|
||||
--font-size-2xl: 1.5rem;
|
||||
--font-size-3xl: 1.875rem;
|
||||
--font-size-4xl: 2.25rem;
|
||||
--font-size-5xl: 3rem;
|
||||
--font-size-6xl: 3.75rem;
|
||||
|
||||
--spacing-xs: 0.25rem;
|
||||
--spacing-sm: 0.5rem;
|
||||
--spacing-base: 1rem;
|
||||
--spacing-lg: 1.5rem;
|
||||
--spacing-xl: 2rem;
|
||||
--spacing-2xl: 3rem;
|
||||
--spacing-3xl: 4rem;
|
||||
}
|
||||
|
||||
* {
|
||||
@@ -36,6 +56,7 @@ body {
|
||||
color: var(--text-dark);
|
||||
background-color: #ffffff;
|
||||
overflow-x: hidden;
|
||||
font-size: var(--font-size-base);
|
||||
}
|
||||
|
||||
/* 顶部联系栏 */
|
||||
@@ -137,6 +158,8 @@ body {
|
||||
min-height: 100vh;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.hero-section::before {
|
||||
@@ -187,6 +210,21 @@ body {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.hero-content h1 {
|
||||
font-size: var(--font-size-5xl);
|
||||
font-weight: 800;
|
||||
line-height: 1.2;
|
||||
margin-bottom: 1.5rem;
|
||||
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.hero-content p {
|
||||
font-size: var(--font-size-xl);
|
||||
line-height: 1.6;
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
.hero-badge .badge {
|
||||
border-radius: 25px;
|
||||
font-weight: 500;
|
||||
@@ -232,6 +270,8 @@ body {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
text-decoration: none;
|
||||
font-size: var(--font-size-base);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
@@ -381,7 +421,7 @@ body {
|
||||
}
|
||||
|
||||
.stat-number {
|
||||
font-size: 2.5rem;
|
||||
font-size: var(--font-size-4xl);
|
||||
font-weight: 700;
|
||||
margin-bottom: 0.5rem;
|
||||
color: var(--primary-color);
|
||||
@@ -389,7 +429,7 @@ body {
|
||||
}
|
||||
|
||||
.stat-label {
|
||||
font-size: 1rem;
|
||||
font-size: var(--font-size-base);
|
||||
color: var(--text-muted);
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -420,6 +460,19 @@ body {
|
||||
.floating-card {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* 移动端新增响应式类 */
|
||||
.text-center-mobile {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.d-block-mobile {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.d-flex-mobile {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 576px) {
|
||||
@@ -438,6 +491,15 @@ body {
|
||||
.brand-text .brand-subtitle {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
/* 超小屏幕优化 */
|
||||
.text-sm-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.d-block-sm {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
/* 工具类 */
|
||||
@@ -449,6 +511,192 @@ body {
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
/* 新增工具类 */
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.text-primary {
|
||||
color: var(--primary-color) !important;
|
||||
}
|
||||
|
||||
.text-secondary {
|
||||
color: var(--secondary-color) !important;
|
||||
}
|
||||
|
||||
.text-success {
|
||||
color: var(--success-color) !important;
|
||||
}
|
||||
|
||||
.text-warning {
|
||||
color: var(--warning-color) !important;
|
||||
}
|
||||
|
||||
.text-danger {
|
||||
color: var(--danger-color) !important;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: var(--text-muted) !important;
|
||||
}
|
||||
|
||||
.bg-primary {
|
||||
background-color: var(--primary-color) !important;
|
||||
}
|
||||
|
||||
.bg-secondary {
|
||||
background-color: var(--secondary-color) !important;
|
||||
}
|
||||
|
||||
.bg-success {
|
||||
background-color: var(--success-color) !important;
|
||||
}
|
||||
|
||||
.bg-warning {
|
||||
background-color: var(--warning-color) !important;
|
||||
}
|
||||
|
||||
.bg-danger {
|
||||
background-color: var(--danger-color) !important;
|
||||
}
|
||||
|
||||
.bg-light {
|
||||
background-color: var(--light-color) !important;
|
||||
}
|
||||
|
||||
.bg-dark {
|
||||
background-color: var(--dark-color) !important;
|
||||
}
|
||||
|
||||
.rounded {
|
||||
border-radius: var(--border-radius) !important;
|
||||
}
|
||||
|
||||
.rounded-circle {
|
||||
border-radius: 50% !important;
|
||||
}
|
||||
|
||||
.shadow {
|
||||
box-shadow: var(--box-shadow) !important;
|
||||
}
|
||||
|
||||
.shadow-sm {
|
||||
box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
|
||||
}
|
||||
|
||||
.shadow-lg {
|
||||
box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
|
||||
}
|
||||
|
||||
.border-0 {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
.border {
|
||||
border: 1px solid #dee2e6 !important;
|
||||
}
|
||||
|
||||
.border-top {
|
||||
border-top: 1px solid #dee2e6 !important;
|
||||
}
|
||||
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid #dee2e6 !important;
|
||||
}
|
||||
|
||||
.border-primary {
|
||||
border-color: var(--primary-color) !important;
|
||||
}
|
||||
|
||||
.border-secondary {
|
||||
border-color: var(--secondary-color) !important;
|
||||
}
|
||||
|
||||
.border-success {
|
||||
border-color: var(--success-color) !important;
|
||||
}
|
||||
|
||||
.border-warning {
|
||||
border-color: var(--warning-color) !important;
|
||||
}
|
||||
|
||||
.border-danger {
|
||||
border-color: var(--danger-color) !important;
|
||||
}
|
||||
|
||||
.d-flex {
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
.align-items-center {
|
||||
align-items: center !important;
|
||||
}
|
||||
|
||||
.justify-content-center {
|
||||
justify-content: center !important;
|
||||
}
|
||||
|
||||
.justify-content-between {
|
||||
justify-content: space-between !important;
|
||||
}
|
||||
|
||||
.flex-wrap {
|
||||
flex-wrap: wrap !important;
|
||||
}
|
||||
|
||||
.w-100 {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.h-100 {
|
||||
height: 100% !important;
|
||||
}
|
||||
|
||||
.m-0 {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.mt-0 {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.mb-0 {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.ms-0 {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
|
||||
.me-0 {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
.p-0 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.pt-0 {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
.pb-0 {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.ps-0 {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
|
||||
.pe-0 {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
|
||||
.mx-auto {
|
||||
margin-left: auto !important;
|
||||
margin-right: auto !important;
|
||||
}
|
||||
|
||||
/* 加载动画 */
|
||||
.loading-spinner {
|
||||
display: inline-block;
|
||||
@@ -540,12 +788,138 @@ body {
|
||||
}
|
||||
}
|
||||
|
||||
/* 新增动画效果 */
|
||||
.slide-in-left {
|
||||
animation: slideInLeft 0.5s ease-out forwards;
|
||||
opacity: 0;
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
|
||||
@keyframes slideInLeft {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
.slide-in-right {
|
||||
animation: slideInRight 0.5s ease-out forwards;
|
||||
opacity: 0;
|
||||
transform: translateX(100%);
|
||||
}
|
||||
|
||||
@keyframes slideInRight {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateX(100%);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
.pulse {
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.bounce {
|
||||
animation: bounce 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes bounce {
|
||||
0%, 100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
}
|
||||
|
||||
.rotate {
|
||||
animation: rotate 2s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes rotate {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.flip-horizontal {
|
||||
animation: flipHorizontal 0.8s ease-in-out;
|
||||
}
|
||||
|
||||
@keyframes flipHorizontal {
|
||||
0% {
|
||||
transform: rotateY(0);
|
||||
}
|
||||
50% {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotateY(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* 图片优化 */
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/* 图片悬停效果 */
|
||||
.img-hover-zoom {
|
||||
overflow: hidden;
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.img-hover-zoom img {
|
||||
transition: transform 0.5s ease;
|
||||
transform-origin: center center;
|
||||
}
|
||||
|
||||
.img-hover-zoom:hover img {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
/* 图片圆角效果 */
|
||||
.img-rounded {
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.img-circle {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
/* 图片边框 */
|
||||
.img-bordered {
|
||||
border: 3px solid var(--primary-color);
|
||||
}
|
||||
|
||||
.img-shadow {
|
||||
box-shadow: var(--box-shadow);
|
||||
}
|
||||
|
||||
/* 滚动条样式 */
|
||||
::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
@@ -566,6 +940,32 @@ img {
|
||||
background: var(--primary-dark);
|
||||
}
|
||||
|
||||
/* 火狐滚动条 */
|
||||
* {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: var(--primary-color) #f1f1f1;
|
||||
}
|
||||
|
||||
/* 自定义滚动条样式 */
|
||||
.custom-scrollbar::-webkit-scrollbar {
|
||||
width: 12px;
|
||||
}
|
||||
|
||||
.custom-scrollbar::-webkit-scrollbar-track {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.custom-scrollbar::-webkit-scrollbar-thumb {
|
||||
background: linear-gradient(var(--primary-color), var(--primary-dark));
|
||||
border-radius: 10px;
|
||||
border: 2px solid #f1f1f1;
|
||||
}
|
||||
|
||||
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--primary-dark);
|
||||
}
|
||||
|
||||
/* 火狐浏览器滚动条 */
|
||||
* {
|
||||
scrollbar-width: thin;
|
||||
@@ -587,6 +987,7 @@ img {
|
||||
background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
|
||||
color: var(--text-light);
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.back-to-top:hover {
|
||||
@@ -600,6 +1001,23 @@ img {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
/* 新增返回顶部按钮动画 */
|
||||
.back-to-top-animate {
|
||||
animation: fadeInUp 0.5s ease-out;
|
||||
}
|
||||
|
||||
/* 返回顶部按钮位置变化 */
|
||||
.back-to-top-left {
|
||||
right: auto;
|
||||
left: 30px;
|
||||
}
|
||||
|
||||
.back-to-top-center {
|
||||
right: auto;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
/* 导航栏动画 */
|
||||
@keyframes slideDown {
|
||||
from {
|
||||
@@ -623,16 +1041,54 @@ img {
|
||||
}
|
||||
}
|
||||
|
||||
/* 新增导航栏动画 */
|
||||
.navbar-fade-in {
|
||||
animation: fadeIn 0.5s ease-out;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-slide-down {
|
||||
animation: slideDown 0.3s ease-out;
|
||||
}
|
||||
|
||||
.navbar-slide-up {
|
||||
animation: slideUp 0.3s ease-out;
|
||||
}
|
||||
|
||||
/* 按钮点击效果 */
|
||||
.btn:active {
|
||||
transform: scale(0.95);
|
||||
}
|
||||
|
||||
.btn-hover-effect {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.btn-hover-effect:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.btn-hover-effect:active {
|
||||
transform: scale(0.95);
|
||||
}
|
||||
|
||||
/* 卡片悬停增强 */
|
||||
.card {
|
||||
transition: var(--transition);
|
||||
border: none;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||
border-radius: var(--border-radius);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
@@ -640,6 +1096,24 @@ img {
|
||||
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.card-hover-effect {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.card-hover-effect:hover {
|
||||
transform: translateY(-10px) scale(1.02);
|
||||
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.card-tilt-effect {
|
||||
transform-style: preserve-3d;
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.card-tilt-effect:hover {
|
||||
transform: rotateY(5deg) rotateX(5deg);
|
||||
}
|
||||
|
||||
/* 进度条样式 */
|
||||
.progress {
|
||||
height: 8px;
|
||||
@@ -651,6 +1125,7 @@ img {
|
||||
.progress-bar {
|
||||
border-radius: 10px;
|
||||
background: linear-gradient(90deg, var(--primary-color), var(--primary-light));
|
||||
transition: width 0.6s ease;
|
||||
}
|
||||
|
||||
.progress-bar.bg-success {
|
||||
@@ -669,6 +1144,20 @@ img {
|
||||
background: linear-gradient(90deg, var(--danger-color), #e57373);
|
||||
}
|
||||
|
||||
/* 新增进度条动画 */
|
||||
.progress-animated .progress-bar {
|
||||
animation: progressAnimation 2s ease-in-out;
|
||||
}
|
||||
|
||||
@keyframes progressAnimation {
|
||||
from {
|
||||
width: 0;
|
||||
}
|
||||
to {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* 数字统计增强 */
|
||||
.count-up {
|
||||
font-weight: 700;
|
||||
@@ -676,6 +1165,26 @@ img {
|
||||
text-shadow: 0 2px 4px rgba(76, 175, 80, 0.2);
|
||||
}
|
||||
|
||||
/* 功能图标样式 */
|
||||
.feature-icon {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: rgba(76, 175, 80, 0.1);
|
||||
border-radius: 50%;
|
||||
font-size: 2rem;
|
||||
color: var(--primary-color);
|
||||
margin: 0 auto 1rem;
|
||||
transition: var(--transition);
|
||||
}
|
||||
|
||||
.feature-icon:hover {
|
||||
background: rgba(76, 175, 80, 0.2);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
/* 面包屑导航样式 */
|
||||
.breadcrumb {
|
||||
background-color: transparent;
|
||||
@@ -684,7 +1193,7 @@ img {
|
||||
}
|
||||
|
||||
.breadcrumb-item {
|
||||
font-size: 0.9rem;
|
||||
font-size: var(--font-size-sm);
|
||||
}
|
||||
|
||||
.breadcrumb-item a {
|
||||
@@ -727,6 +1236,7 @@ img.lazy.loaded {
|
||||
border-radius: 0.5rem;
|
||||
padding: 0.75rem 1rem;
|
||||
transition: var(--transition);
|
||||
font-size: var(--font-size-base);
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
@@ -1001,4 +1511,13 @@ img.lazy.loaded {
|
||||
.transform-3d:hover {
|
||||
transform: rotateY(10deg) rotateX(10deg) scale(1.05);
|
||||
}
|
||||
|
||||
/* 大屏幕新增类 */
|
||||
.text-lg-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.d-lg-flex {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,6 +131,37 @@
|
||||
.chart-container {
|
||||
height: 250px;
|
||||
}
|
||||
|
||||
/* 移动端新增优化 */
|
||||
.mobile-container {
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.mobile-section {
|
||||
padding: 2rem 0;
|
||||
}
|
||||
|
||||
.mobile-card {
|
||||
margin-bottom: 1rem;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.mobile-text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mobile-mb-3 {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.mobile-mt-3 {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.mobile-p-3 {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* 平板设备优化 */
|
||||
@@ -154,6 +185,19 @@
|
||||
.demo-sidebar {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
/* 平板新增优化 */
|
||||
.tablet-container {
|
||||
max-width: 720px;
|
||||
}
|
||||
|
||||
.tablet-section {
|
||||
padding: 3rem 0;
|
||||
}
|
||||
|
||||
.tablet-card {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* 大屏幕优化 */
|
||||
@@ -177,6 +221,23 @@
|
||||
.metric-number {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
/* 大屏幕新增优化 */
|
||||
.desktop-container {
|
||||
max-width: 1400px;
|
||||
}
|
||||
|
||||
.desktop-section {
|
||||
padding: 5rem 0;
|
||||
}
|
||||
|
||||
.desktop-card {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.desktop-card:hover {
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
}
|
||||
|
||||
/* 触摸设备优化 */
|
||||
|
||||
Reference in New Issue
Block a user