- 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.
75 lines
2.0 KiB
Vue
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>
|