mirror of
https://github.com/DeNNiiInc/Web-Page-Performance-Test.git
synced 2026-04-17 20:05:58 +00:00
Enhanced footer with sleek GitHub link and beautiful Git version badge
This commit is contained in:
14
index.html
14
index.html
@@ -48,8 +48,20 @@
|
|||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<p>© 2025 Beyond Cloud Technology. All rights reserved.</p>
|
<p>© 2025 Beyond Cloud Technology. All rights reserved.</p>
|
||||||
|
|
||||||
|
<!-- GitHub Link -->
|
||||||
|
<a href="https://github.com/DeNNiiInc/Web-Page-Performance-Test" target="_blank" rel="noopener noreferrer" class="github-link">
|
||||||
|
<svg class="github-icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
|
||||||
|
</svg>
|
||||||
|
<span>View on GitHub</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Git Version Badge -->
|
||||||
<div id="version-badge" class="version-badge">
|
<div id="version-badge" class="version-badge">
|
||||||
<span class="version-label">Version:</span>
|
<svg class="badge-icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M21.007 8.222A3.738 3.738 0 0 0 15.045 5.2a3.737 3.737 0 0 0 1.156 6.583 2.988 2.988 0 0 1-2.668 1.67h-2.99a4.456 4.456 0 0 0-2.989 1.165V7.4a3.737 3.737 0 1 0-1.494 0v9.117a3.776 3.776 0 1 0 1.816.099 2.99 2.99 0 0 1 2.668-1.667h2.99a4.484 4.484 0 0 0 4.223-3.039 3.736 3.736 0 0 0 3.25-3.687zM4.565 3.738a2.242 2.242 0 1 1 4.484 0 2.242 2.242 0 0 1-4.484 0zm4.484 16.441a2.242 2.242 0 1 1-4.484 0 2.242 2.242 0 0 1 4.484 0zm8.221-9.715a2.242 2.242 0 1 1 0-4.485 2.242 2.242 0 0 1 0 4.485z"/>
|
||||||
|
</svg>
|
||||||
<span id="commit-id" class="commit-id">Loading...</span>
|
<span id="commit-id" class="commit-id">Loading...</span>
|
||||||
<span class="version-separator">•</span>
|
<span class="version-separator">•</span>
|
||||||
<span id="commit-age" class="commit-age">Loading...</span>
|
<span id="commit-age" class="commit-age">Loading...</span>
|
||||||
|
|||||||
19
script.js
19
script.js
@@ -5,14 +5,20 @@
|
|||||||
async function updateVersionBadge() {
|
async function updateVersionBadge() {
|
||||||
try {
|
try {
|
||||||
const response = await fetch('/api/git-info');
|
const response = await fetch('/api/git-info');
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP ${response.status}`);
|
||||||
|
}
|
||||||
|
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
const commitIdEl = document.getElementById('commit-id');
|
const commitIdEl = document.getElementById('commit-id');
|
||||||
const commitAgeEl = document.getElementById('commit-age');
|
const commitAgeEl = document.getElementById('commit-age');
|
||||||
|
|
||||||
if (data.error) {
|
if (data.error || !data.commitId) {
|
||||||
commitIdEl.textContent = 'N/A';
|
// Fallback - try to get from git locally or show placeholder
|
||||||
commitAgeEl.textContent = 'Local Dev';
|
commitIdEl.textContent = 'local';
|
||||||
|
commitAgeEl.textContent = 'dev mode';
|
||||||
commitIdEl.style.color = 'var(--color-text-muted)';
|
commitIdEl.style.color = 'var(--color-text-muted)';
|
||||||
} else {
|
} else {
|
||||||
commitIdEl.textContent = data.commitId;
|
commitIdEl.textContent = data.commitId;
|
||||||
@@ -21,8 +27,11 @@ async function updateVersionBadge() {
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Failed to fetch git info:', error);
|
console.error('Failed to fetch git info:', error);
|
||||||
document.getElementById('commit-id').textContent = 'N/A';
|
const commitIdEl = document.getElementById('commit-id');
|
||||||
document.getElementById('commit-age').textContent = 'Error';
|
const commitAgeEl = document.getElementById('commit-age');
|
||||||
|
commitIdEl.textContent = 'local';
|
||||||
|
commitAgeEl.textContent = 'dev mode';
|
||||||
|
commitIdEl.style.color = 'var(--color-text-tertiary)';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
101
styles.css
101
styles.css
@@ -226,55 +226,94 @@ body::before {
|
|||||||
|
|
||||||
/* Footer */
|
/* Footer */
|
||||||
.footer {
|
.footer {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-top: var(--spacing-2xl);
|
margin-top: var(--spacing-2xl);
|
||||||
padding: var(--spacing-xl) 0;
|
padding: var(--spacing-xl) 0;
|
||||||
border-top: 1px solid var(--color-border);
|
border-top: 1px solid var(--color-border);
|
||||||
color: var(--color-text-muted);
|
color: var(--color-text-muted);
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: var(--spacing-sm);
|
gap: var(--spacing-md);
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GitHub Link */
|
||||||
|
.github-link {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--spacing-xs);
|
||||||
|
padding: var(--spacing-sm) var(--spacing-lg);
|
||||||
|
background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(139, 92, 246, 0.1) 100%);
|
||||||
|
border: 1px solid rgba(99, 102, 241, 0.3);
|
||||||
|
border-radius: var(--radius-lg);
|
||||||
|
color: var(--color-accent-primary);
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
transition: all var(--transition-base);
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.github-link:hover {
|
||||||
|
background: linear-gradient(135deg, rgba(99, 102, 241, 0.2) 0%, rgba(139, 92, 246, 0.2) 100%);
|
||||||
|
border-color: rgba(99, 102, 241, 0.5);
|
||||||
|
transform: translateY(-2px);
|
||||||
|
box-shadow: 0 4px 12px rgba(99, 102, 241, 0.2);
|
||||||
|
color: var(--color-accent-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.github-icon {
|
||||||
|
width: 1.25rem;
|
||||||
|
height: 1.25rem;
|
||||||
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Version Badge */
|
/* Version Badge */
|
||||||
.version-badge {
|
.version-badge {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: var(--spacing-xs);
|
gap: var(--spacing-xs);
|
||||||
padding: var(--spacing-xs) var(--spacing-md);
|
padding: var(--spacing-xs) var(--spacing-lg);
|
||||||
background: var(--color-bg-tertiary);
|
background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(5, 150, 105, 0.1) 100%);
|
||||||
border: 1px solid var(--color-border);
|
border: 1.5px solid rgba(16, 185, 129, 0.3);
|
||||||
border-radius: var(--radius-md);
|
border-radius: 50px;
|
||||||
font-family: var(--font-mono);
|
font-family: var(--font-mono);
|
||||||
font-size: 0.75rem;
|
font-size: 0.8125rem;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
transition: all var(--transition-base);
|
transition: all var(--transition-base);
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.version-badge:hover {
|
.version-badge:hover {
|
||||||
border-color: var(--color-border-hover);
|
background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(5, 150, 105, 0.15) 100%);
|
||||||
background: var(--color-bg-glass-hover);
|
border-color: rgba(16, 185, 129, 0.5);
|
||||||
transform: translateY(-1px);
|
transform: translateY(-1px) scale(1.02);
|
||||||
|
box-shadow: 0 4px 12px rgba(16, 185, 129, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.version-label {
|
.badge-icon {
|
||||||
color: var(--color-text-tertiary);
|
width: 1rem;
|
||||||
font-weight: 500;
|
height: 1rem;
|
||||||
|
color: var(--color-accent-success);
|
||||||
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.commit-id {
|
.commit-id {
|
||||||
color: var(--color-accent-success);
|
color: var(--color-accent-success);
|
||||||
font-weight: 600;
|
font-weight: 700;
|
||||||
letter-spacing: 0.5px;
|
letter-spacing: 0.5px;
|
||||||
|
text-shadow: 0 0 10px rgba(16, 185, 129, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.version-separator {
|
.version-separator {
|
||||||
color: var(--color-text-muted);
|
color: rgba(16, 185, 129, 0.5);
|
||||||
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
.commit-age {
|
.commit-age {
|
||||||
color: var(--color-text-secondary);
|
color: var(--color-text-secondary);
|
||||||
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===================================
|
/* ===================================
|
||||||
|
|||||||
Reference in New Issue
Block a user