拟态风格设计系统
体验现代拟态设计风格,柔和的阴影和高光效果创造立体感
设计原则
柔和阴影
使用相近颜色的阴影和高光创造立体感
统一配色
背景与元素颜色相近,保持视觉和谐
交互反馈
通过阴影变化提供清晰的交互反馈
颜色系统
背景色
#e0e5ec
阴影色 1
#b8bec7
阴影色 2
#ffffff
主色调
#165DFF
拟态按钮
拟态输入框
拟态卡片
卡片 1
这是一个拟态风格的卡片示例
卡片 2
另一个拟态风格的卡片
拟态图标和按钮
拟态选择组件
开关选项
复选框选项 1
复选框选项 2
单选按钮 1
单选按钮 2
其他组件
进度
75%
拟态容器
容器标题
这是一个拟态风格的容器,使用柔和的阴影和高光效果创造立体感
暗色模式
点击顶部导航栏的按钮可切换主题
暗色模式卡片
暗色模式使用更深的背景色和调整后的阴影效果
高级组件
00:00:00
高级拟态组件
计数器
0
选项卡
首页
关于
联系
下拉菜单
选项1
选项2
选项3
搜索框
通知
操作成功完成!
滑动开关
仪表盘
加载器
使用指南
HTML 结构
<!-- 拟态按钮 -->
<button class="neumorphic-button">
按钮文本
</button>
<!-- 拟态卡片 -->
<div class="neumorphic-card">
<h3>标题</h3>
<p>内容</p>
</div>
<!-- 拟态时钟 -->
<div class="neumorphic-clock">
<div class="clock-marks" id="clock-marks"></div>
<div class="clock-hand hour-hand" id="hour-hand"></div>
<div class="clock-hand minute-hand" id="minute-hand"></div>
<div class="clock-hand second-hand" id="second-hand"></div>
<div class="clock-center"></div>
</div>
<!-- 拟态计数器 -->
<div class="neumorphic-counter">
<button class="neumorphic-counter-btn">-</button>
<div class="neumorphic-counter-value">0</div>
<button class="neumorphic-counter-btn">+</button>
</div>
CSS 类名
-
按钮
.neumorphic-button -
卡片
.neumorphic-card -
输入框
.neumorphic-input -
图标
.neumorphic-icon -
反转样式
.reverse -
时钟
.neumorphic-clock -
数字显示
.neumorphic-display -
计数器
.neumorphic-counter -
选项卡
.neumorphic-tabs -
下拉菜单
.neumorphic-dropdown
JavaScript 功能
交互式组件
<script>
// 计数器功能
function initCounter() {
const counterValue = document.getElementById('counterValue-demo');
const incrementBtn = document.getElementById('increment-demo');
const decrementBtn = document.getElementById('decrement-demo');
let count = 0;
if(incrementBtn && decrementBtn && counterValue) {
incrementBtn.addEventListener('click', () => {
count++;
counterValue.textContent = count;
});
decrementBtn.addEventListener('click', () => {
count--;
counterValue.textContent = count;
});
}
}
// 选项卡功能
function initTabs() {
const tabs = document.querySelectorAll('.neumorphic-tab');
tabs.forEach(tab => {
tab.addEventListener('click', () => {
tabs.forEach(t => t.classList.remove('active'));
tab.classList.add('active');
});
});
}
// 下拉菜单功能
function initDropdown() {
const dropdownBtn = document.querySelector('.neumorphic-dropdown-btn');
const dropdownContent = document.querySelector('.neumorphic-dropdown-content');
if(dropdownBtn && dropdownContent) {
dropdownBtn.addEventListener('click', () => {
dropdownContent.classList.toggle('show');
});
// 点击其他地方关闭下拉菜单
document.addEventListener('click', (e) => {
if (!dropdownBtn.contains(e.target)) {
dropdownContent.classList.remove('show');
}
});
}
}
// 通知关闭功能
function initNotification() {
const notificationClose = document.querySelector('.neumorphic-notification-close');
if(notificationClose) {
notificationClose.addEventListener('click', () => {
const notification = notificationClose.closest('.neumorphic-notification');
if(notification) notification.style.display = 'none';
});
}
}
// 初始化所有功能
document.addEventListener('DOMContentLoaded', function() {
initCounter();
initTabs();
initDropdown();
initNotification();
});
</script>