Files
Talks/slides/_shared/DeckFooter.vue
T
Le Prévost-Corvellec Arnault 354c8cd9ef Add Makefile, package.json, and initial configuration for VitePress and Slidev integration
- Introduced a Makefile for streamlined commands related to building, running, and managing presentations.
- Created package.json to define project metadata, dependencies, and scripts for development and testing.
- Added .gitignore entries to exclude build artifacts and temporary files from version control.
- Included playwright.config.mjs for end-to-end testing setup with Playwright.
- Added README.md for project documentation, outlining setup instructions and development guidelines.
2026-04-11 15:59:20 +02:00

75 lines
2.0 KiB
Vue

<script setup lang="ts">
/**
* Pied de page fixe pour tous les decks Slidev : retour portail + lien Specificat.
* Lien « Accueil » en relatif ../../../ pour fonctionner avec --base …/slides/<slug>/
* (ex. /slides/foo/12 → racine du site).
*
* Ne pas cibler .slidev-page en CSS global (padding, box-sizing, etc.) : Slidev centre
* la planche avec transform + dimensions ; modifier cette boîte casse le centrage.
*/
const specificat = 'https://specificat.io/'
</script>
<template>
<footer class="deck-footer" aria-label="Navigation du portail">
<a class="deck-footer__link" href="../../../">Accueil</a>
<span class="deck-footer__sep" aria-hidden="true">·</span>
<a
class="deck-footer__link"
:href="specificat"
rel="noopener noreferrer"
target="_blank"
>Specificat.io</a>
<span class="deck-footer__sep" aria-hidden="true">·</span>
<span class="deck-footer__rights">All rights reserved</span>
</footer>
</template>
<style scoped>
.deck-footer {
position: fixed;
left: 0;
right: 0;
bottom: 0;
/*
* Slidev place la webcam sur .z-camera (= z-index 15, voir @slidev/client/uno.config.ts).
* Un footer plus haut (ex. 30) passait au-dessus et masquait la miniature.
*/
z-index: 10;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 0.35em 0.5em;
padding: 0.35rem 2.5rem 0.55rem;
font-size: clamp(10px, 1.5vw, 12px);
line-height: 1.3;
color: rgba(245, 245, 245, 0.75);
pointer-events: none;
border-top: 1px solid rgba(255, 255, 255, 0.07);
background: linear-gradient(to top, rgba(5, 7, 9, 0.72), transparent);
}
.deck-footer__link {
pointer-events: auto;
color: #2bc9c6;
text-decoration: none;
font-weight: 500;
}
.deck-footer__link:hover,
.deck-footer__link:focus-visible {
text-decoration: underline;
text-underline-offset: 2px;
}
.deck-footer__sep {
opacity: 0.65;
}
.deck-footer__rights {
opacity: 0.85;
letter-spacing: 0.02em;
}
</style>