248 lines
4.4 KiB
CSS
248 lines
4.4 KiB
CSS
:root {
|
|
--k: 1353651.53435435;
|
|
}
|
|
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
font-family: Arial, sans-serif;
|
|
line-height: 1.6;
|
|
background-color: #f5f5f5;
|
|
color: #333;
|
|
}
|
|
|
|
.container {
|
|
max-width: 1200px;
|
|
margin: 2rem auto;
|
|
padding: 0 1rem;
|
|
}
|
|
|
|
h1 {
|
|
color: #2c3e50;
|
|
margin-bottom: 1rem;
|
|
text-align: center;
|
|
}
|
|
|
|
h2 {
|
|
color: #34495e;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.file-list summary {
|
|
padding: 0.5rem 1rem;
|
|
background-color: white;
|
|
border-radius: 4px;
|
|
color: #2c3e50;
|
|
transition: background-color 0.3s;
|
|
margin-bottom: 0.5em;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.file-list summary:hover {
|
|
background-color: #e0e0e0;
|
|
}
|
|
|
|
.file-list summary::marker {
|
|
content: "📁 ";
|
|
}
|
|
|
|
.file-list details[open] summary::marker {
|
|
content: "📂 ";
|
|
}
|
|
|
|
.file-list ul {
|
|
list-style: none;
|
|
}
|
|
|
|
.file-list li {
|
|
margin-left: 0.5rem;
|
|
}
|
|
|
|
.file-list a::before {
|
|
content: "📄 ";
|
|
}
|
|
|
|
.file-list a {
|
|
display: block;
|
|
padding: 0.5rem 1rem;
|
|
background-color: white;
|
|
border-radius: 4px;
|
|
text-decoration: none;
|
|
color: #2c3e50;
|
|
transition: background-color 0.3s;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
.file-list a:hover {
|
|
background-color: #e0e0e0;
|
|
}
|
|
|
|
.link {
|
|
display: inline-block;
|
|
margin-bottom: 1rem;
|
|
color: #3498db;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.link:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
main {
|
|
display: flex;
|
|
flex-flow: wrap;
|
|
gap: 1rem;
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
ul {
|
|
list-style: none;
|
|
}
|
|
|
|
details {
|
|
cursor: pointer;
|
|
}
|
|
|
|
main > table {
|
|
margin: auto;
|
|
}
|
|
|
|
td {
|
|
text-align: left;
|
|
}
|
|
|
|
.member {
|
|
display: flex;
|
|
border: 8px outset #476079;
|
|
border-radius: 6px;
|
|
background-color: #34495e;
|
|
margin-bottom: .5rem;
|
|
}
|
|
|
|
.member-id {
|
|
background: #777;
|
|
align-content: center;
|
|
color: lightgreen;
|
|
font-weight: bold;
|
|
border: 1px inset black;
|
|
font-family: monospace;
|
|
font-size: 1.3em;
|
|
margin: 1em 0.5em;
|
|
padding: 0.2em 0.4em;
|
|
}
|
|
|
|
.interfaces {
|
|
border-spacing: 0;
|
|
margin: 0;
|
|
background-color: white;
|
|
}
|
|
|
|
.interface {
|
|
position: relative;
|
|
text-align: center;
|
|
min-width: 2em;
|
|
height: 2em;
|
|
mix-blend-mode: darken;
|
|
print-color-adjust: exact;
|
|
cursor: help;
|
|
transition: 0.2s background-color;
|
|
background-image: url('data:image/svg+xml;utf8,<svg width="20" height="20" viewBox="0 0 5.2916665 5.2916666" version="1.1" id="svg1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><defs id="defs1" /><g id="layer1"><path id="rect1" style="fill:%232c3e50;fill-opacity:1;stroke-width:0.070003" d="M 0,0 V 5.2916667 H 5.2916667 V 0 Z m 2.2245153,0.26456284 h 0.9264484 c 0.1791197,0 0.3233547,0.17861648 0.3233547,0.40046728 v 0.0861369 h 1.1373691 c 0.2740052,0 0.4152798,0.19374878 0.4152798,0.53312048 v 2.9297312 c 0,0.339372 -0.1412746,0.5329357 -0.4152798,0.5329357 H 0.67997917 c -0.27400514,0 -0.41541633,-0.1935637 -0.41541633,-0.5329357 V 1.2842875 c 0,-0.3393717 0.14141119,-0.53312052 0.41541633,-0.53312052 H 1.9011608 v -0.0861369 c 0,-0.2218508 0.1442347,-0.40046728 0.3233545,-0.40046724 z" /></g></svg>');
|
|
background-size: cover;
|
|
padding-top: 0.2em;
|
|
}
|
|
|
|
.interface:hover {
|
|
background-color: #ddd;
|
|
}
|
|
|
|
.vlan {
|
|
color: #ecf0f1;
|
|
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
|
|
background-color: hsl(calc(var(--k) * var(--pvid)) 97% 65%);
|
|
}
|
|
|
|
.vlan:hover {
|
|
background-color: hsl(calc(var(--k) * var(--pvid)) 65% 75%);
|
|
}
|
|
|
|
.trunk:not(.shutdown) {
|
|
font-weight: bold;
|
|
border: 4px solid !important;
|
|
border-image-slice: 1 !important;
|
|
border-image-source: linear-gradient(
|
|
127deg,
|
|
red,
|
|
orange,
|
|
yellow,
|
|
green,
|
|
blue,
|
|
violet
|
|
) !important;
|
|
padding: 0;
|
|
}
|
|
|
|
.hybrid {
|
|
background-image: linear-gradient(
|
|
135deg,
|
|
hsl(calc(var(--k) * var(--tagged)) 97% 65%) 50%,
|
|
hsl(calc(var(--k) * var(--untagged)) 97% 65%) 50%
|
|
);
|
|
}
|
|
|
|
.hybrid:hover {
|
|
background-image: linear-gradient(
|
|
135deg,
|
|
hsl(calc(var(--k) * var(--tagged)) 65% 75%) 50%,
|
|
hsl(calc(var(--k) * var(--untagged)) 65% 75%) 50%
|
|
);
|
|
}
|
|
|
|
.shutdown:not([class*="loopback-detection action shutdown"]) {
|
|
background-color: lightgray;
|
|
color: gray !important;
|
|
}
|
|
|
|
.poe::before {
|
|
content: "⚡";
|
|
font-size: 0.65em;
|
|
position: absolute;
|
|
top: -0.2em;
|
|
right: -0.25em;
|
|
}
|
|
|
|
.voice_vlan::after {
|
|
content: "📞";
|
|
font-size: 0.65em;
|
|
position: absolute;
|
|
bottom: -0.15em;
|
|
left: 0;
|
|
}
|
|
|
|
.legend {
|
|
border-spacing: 0;
|
|
}
|
|
|
|
.legend td {
|
|
border: 1px inset #2c3e50;
|
|
}
|
|
|
|
footer {
|
|
display: flex;
|
|
flex-flow: column;
|
|
align-items: center;
|
|
}
|
|
|
|
#colorSlider {
|
|
width: 33%;
|
|
}
|
|
|
|
@media print {
|
|
.no-print {
|
|
display: none;
|
|
}
|
|
}
|