ShadowWolf1999's picture
可以 再模仿一下 jira吗
76c6731 verified
class TestSidebar extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
:host {
display: block;
}
.sidebar {
background-color: white;
border-radius: 0.75rem;
padding: 1.5rem;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
height: fit-content;
}
.sidebar-title {
font-size: 1.125rem;
font-weight: 600;
color: #1e293b;
margin-bottom: 1.5rem;
display: flex;
align-items: center;
}
.sidebar-title i {
margin-right: 0.5rem;
}
.sidebar-menu {
list-style: none;
padding: 0;
margin: 0;
}
.sidebar-item {
margin-bottom: 0.5rem;
}
.sidebar-link {
display: flex;
align-items: center;
padding: 0.5rem 1rem;
border-radius: 0.375rem;
color: #64748b;
text-decoration: none;
transition: all 0.2s;
}
.sidebar-link:hover {
background-color: #f1f5f9;
color: #3b82f6;
}
.sidebar-link.active {
background-color: #eff6ff;
color: #3b82f6;
font-weight: 500;
}
.sidebar-link i {
margin-right: 0.75rem;
width: 20px;
height: 20px;
}
.sidebar-divider {
border-top: 1px solid #e2e8f0;
margin: 1rem 0;
}
.sidebar-subtitle {
font-size: 0.75rem;
font-weight: 600;
color: #64748b;
text-transform: uppercase;
letter-spacing: 0.05em;
margin: 1.5rem 0 0.5rem 1rem;
}
@media (max-width: 1024px) {
:host {
display: none;
}
}
</style>
<div class="sidebar">
<h3 class="sidebar-title">
<i data-feather="grid"></i>
Projects
</h3>
<ul class="sidebar-menu">
<li class="sidebar-item">
<a href="#" class="sidebar-link active">
<i data-feather="home"></i>
Dashboard
</a>
</li>
<li class="sidebar-item">
<a href="#" class="sidebar-link">
<i data-feather="list"></i>
All Test Cases
</a>
</li>
</ul>
<p class="sidebar-subtitle">Test Types</p>
<ul class="sidebar-menu">
<li class="sidebar-item">
<a href="#" class="sidebar-link">
<i data-feather="monitor"></i>
UI Automation
</a>
</li>
<li class="sidebar-item">
<a href="#" class="sidebar-link">
<i data-feather="code"></i>
API Automation
</a>
</li>
<li class="sidebar-item">
<a href="#" class="sidebar-link">
<i data-feather="user"></i>
Manual Tests
</a>
</li>
</ul>
<div class="sidebar-divider"></div>
<p class="sidebar-subtitle">Test Phases</p>
<ul class="sidebar-menu">
<li class="sidebar-item">
<a href="#" class="sidebar-link">
<i data-feather="layers"></i>
SIT
</a>
</li>
<li class="sidebar-item">
<a href="#" class="sidebar-link">
<i data-feather="users"></i>
UAT
</a>
</li>
<li class="sidebar-item">
<a href="#" class="sidebar-link">
<i data-feather="refresh-cw"></i>
Regression
</a>
</li>
</ul>
</div>
`;
}
}
customElements.define('test-sidebar', TestSidebar);