Compare commits
7 Commits
polish/ind
...
063c7fb4bb
| Author | SHA1 | Date | |
|---|---|---|---|
| 063c7fb4bb | |||
| 2180fcc27b | |||
| bb868aa0b0 | |||
| 769c1589c4 | |||
| 95a22ac3d1 | |||
| 622963e8e9 | |||
| a2e5fd5bae |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -34,6 +34,7 @@ const {
|
||||
if (!body || !root || !hero || !follow) return;
|
||||
|
||||
const BODY_CLASS = "is-glossary-portal-page";
|
||||
const COMPACT_STICKY_CLASS = "glossary-portal-compact-sticky";
|
||||
const FOLLOW_ON_CLASS = "glossary-portal-follow-on";
|
||||
const EXPANDED_CLASS = "glossary-portal-hero-expanded";
|
||||
const CONDENSED_CLASS = "glossary-portal-hero-condensed";
|
||||
@@ -49,14 +50,18 @@ const {
|
||||
let lastFollowOn = null;
|
||||
let lastCondensed = null;
|
||||
let lastHeroHeight = -1;
|
||||
let heroPinStartY = null;
|
||||
let lastCompactFollowTitle = null;
|
||||
let lastCompactFollowOn = null;
|
||||
|
||||
body.classList.add(BODY_CLASS);
|
||||
body.classList.toggle(COMPACT_STICKY_CLASS, Boolean(compactSticky));
|
||||
|
||||
const isCompactViewport = () =>
|
||||
mqMobile.matches || mqSmallLandscape.matches;
|
||||
|
||||
const keepPortalPremiumOnCompact = () =>
|
||||
body.classList.contains("is-index-complet-page");
|
||||
Boolean(compactSticky) || body.classList.contains("is-index-complet-page");
|
||||
|
||||
const compactShouldDisablePortal = () =>
|
||||
isCompactViewport() && !keepPortalPremiumOnCompact();
|
||||
@@ -78,7 +83,40 @@ const {
|
||||
return Number.isFinite(n) ? n : 64;
|
||||
};
|
||||
|
||||
|
||||
const captureHeroPinStart = (force = false) => {
|
||||
if (!force && heroPinStartY != null) return heroPinStartY;
|
||||
|
||||
const stickyTop = readStickyTop();
|
||||
const rect = hero.getBoundingClientRect();
|
||||
const y = window.scrollY || window.pageYOffset || 0;
|
||||
|
||||
/*
|
||||
Seuil documentaire réel : moment où le haut naturel du hero
|
||||
rejoint le rail sticky. Ce seuil empêche la condensation au haut
|
||||
de page lorsque le hero n'est pas encore embarqué dans le scroll.
|
||||
*/
|
||||
heroPinStartY = Math.max(0, Math.round(y + rect.top - stickyTop));
|
||||
return heroPinStartY;
|
||||
};
|
||||
|
||||
const hasReachedHeroPinStart = () => {
|
||||
const y = window.scrollY || window.pageYOffset || 0;
|
||||
const start = captureHeroPinStart(false);
|
||||
const rect = hero.getBoundingClientRect();
|
||||
const stickyTop = readStickyTop();
|
||||
|
||||
/*
|
||||
Condensation immédiate au moment réel d'accrochage :
|
||||
- soit le scroll a atteint le seuil documentaire ;
|
||||
- soit le hero est déjà visuellement posé sur son rail sticky.
|
||||
Aucun délai artificiel ne doit retarder la troncature.
|
||||
*/
|
||||
return y >= start - 1 || Math.abs(rect.top - stickyTop) <= 2;
|
||||
};
|
||||
|
||||
const computeFollowOn = () =>
|
||||
body.classList.contains(CONDENSED_CLASS) &&
|
||||
(!isCompactViewport() || compactStickyEnabled()) &&
|
||||
follow.classList.contains("is-on") &&
|
||||
follow.style.display !== "none" &&
|
||||
@@ -87,10 +125,7 @@ const {
|
||||
const computeCondensed = () => {
|
||||
if (isCompactViewport() && !compactStickyEnabled()) return false;
|
||||
|
||||
const heroRect = hero.getBoundingClientRect();
|
||||
const stickyTop = readStickyTop();
|
||||
|
||||
return heroRect.top <= stickyTop + 2;
|
||||
return hasReachedHeroPinStart();
|
||||
};
|
||||
|
||||
const measureHeroHeight = () =>
|
||||
@@ -107,10 +142,60 @@ const {
|
||||
|
||||
if (cs.position !== "sticky") return false;
|
||||
|
||||
const pinnedOnRail = Math.abs(rect.top - stickyTop) <= PIN_EPS;
|
||||
const stillVisible = rect.bottom > stickyTop + 24;
|
||||
return hasReachedHeroPinStart() && stillVisible;
|
||||
};
|
||||
|
||||
return pinnedOnRail && stillVisible;
|
||||
const applyCompactHeroRail = () => {
|
||||
/*
|
||||
Les portails compactSticky doivent coller sous l’edition-bar.
|
||||
Certaines couches CSS historiques peuvent encore forcer top:0.
|
||||
On pose donc le rail en inline !important, uniquement pour les
|
||||
portails génériques compacts, jamais pour l’index complet.
|
||||
*/
|
||||
if (
|
||||
!isCompactViewport() ||
|
||||
!compactStickyEnabled() ||
|
||||
body.classList.contains("is-index-complet-page")
|
||||
) {
|
||||
hero.style.removeProperty("top");
|
||||
return;
|
||||
}
|
||||
|
||||
const stickyTop = readStickyTop();
|
||||
hero.style.setProperty("top", `${Math.round(stickyTop)}px`, "important");
|
||||
};
|
||||
|
||||
const applyCompactFollowRail = () => {
|
||||
/*
|
||||
Le reading-follow compact doit être collé sous le hero.
|
||||
Certaines règles historiques de #reading-follow imposent top:-1px
|
||||
avec une priorité supérieure au style simple. On pose donc le rail
|
||||
en inline !important, uniquement pour les portails compacts génériques.
|
||||
*/
|
||||
if (
|
||||
!isCompactViewport() ||
|
||||
!compactStickyEnabled() ||
|
||||
body.classList.contains("is-index-complet-page")
|
||||
) {
|
||||
follow.style.removeProperty("top");
|
||||
follow.style.removeProperty("left");
|
||||
follow.style.removeProperty("width");
|
||||
return;
|
||||
}
|
||||
|
||||
const stickyTop = readStickyTop();
|
||||
const heroH = body.classList.contains(CONDENSED_CLASS)
|
||||
? measureHeroHeight()
|
||||
: 0;
|
||||
|
||||
const top = Math.max(0, Math.round(stickyTop + heroH - 1));
|
||||
|
||||
follow.style.setProperty("position", "fixed", "important");
|
||||
follow.style.setProperty("top", `${top}px`, "important");
|
||||
follow.style.setProperty("left", "var(--reading-left)", "important");
|
||||
follow.style.setProperty("width", "var(--reading-width)", "important");
|
||||
follow.style.setProperty("z-index", "71", "important");
|
||||
};
|
||||
|
||||
const applyLocalStickyHeight = () => {
|
||||
@@ -227,6 +312,226 @@ const {
|
||||
heroToggle.setAttribute("aria-expanded", expanded ? "true" : "false");
|
||||
}
|
||||
};
|
||||
/* GENERIC_COMPACT_FOLLOW_CLEAN_START
|
||||
Portails génériques compactSticky :
|
||||
- ligne 1 : section macro active ;
|
||||
- ligne 2 : sous-tête interne active ;
|
||||
- un titre ne devient actif qu'une fois complètement dépassé
|
||||
par la bande réelle du reading-follow__inner.
|
||||
*/
|
||||
|
||||
const isGenericCompactPortal = () =>
|
||||
isCompactViewport() &&
|
||||
compactStickyEnabled() &&
|
||||
!body.classList.contains("is-index-complet-page");
|
||||
|
||||
const compactFollowBand = () => {
|
||||
const inner = follow.querySelector(".reading-follow__inner");
|
||||
const innerRect = inner?.getBoundingClientRect();
|
||||
const heroRect = hero.getBoundingClientRect();
|
||||
|
||||
if (innerRect && innerRect.height > 0) {
|
||||
return {
|
||||
top: innerRect.top,
|
||||
bottom: innerRect.bottom,
|
||||
height: innerRect.height,
|
||||
};
|
||||
}
|
||||
|
||||
const top = Math.max(readStickyTop(), heroRect.bottom || readStickyTop());
|
||||
const height = 30;
|
||||
|
||||
return {
|
||||
top,
|
||||
bottom: top + height,
|
||||
height,
|
||||
};
|
||||
};
|
||||
|
||||
const cleanFollowTitle = (el) => {
|
||||
if (!el) return "";
|
||||
|
||||
const clone = el.cloneNode(true);
|
||||
|
||||
clone
|
||||
.querySelectorAll(
|
||||
[
|
||||
".glossary-portal-section__count",
|
||||
"[class*='count']",
|
||||
"[class*='index']",
|
||||
"[class*='meta']",
|
||||
"[class*='eyebrow']",
|
||||
"[aria-hidden='true']"
|
||||
].join(",")
|
||||
)
|
||||
.forEach((node) => node.remove());
|
||||
|
||||
return clone.textContent?.replace(/\s+/g, " ").trim() ?? "";
|
||||
};
|
||||
|
||||
const titleNodeFor = (node) =>
|
||||
node?.matches?.("h2,h3,h4,[data-reading-title]")
|
||||
? node
|
||||
: node?.querySelector?.("h2,h3,h4,[data-reading-title]") ?? node;
|
||||
|
||||
const passedTitleStateFrom = (nodes) => {
|
||||
const band = compactFollowBand();
|
||||
const bandCenter = band.top + band.height / 2;
|
||||
let active = null;
|
||||
|
||||
for (const node of nodes) {
|
||||
const titleNode = titleNodeFor(node);
|
||||
const title = cleanFollowTitle(titleNode);
|
||||
if (!title) continue;
|
||||
|
||||
const rect = titleNode.getBoundingClientRect();
|
||||
if (rect.height <= 0) continue;
|
||||
|
||||
/*
|
||||
Règle perceptive stabilisée :
|
||||
la traversée commence quand le bas du follow rencontre le haut
|
||||
du titre réel, et s'achève quand le haut du follow rencontre
|
||||
le bas du titre réel.
|
||||
|
||||
Comme le follow n'anime pas deux titres concurrents, le basculement
|
||||
se fait au milieu de cette traversée : quand le centre du titre
|
||||
est passé au-dessus du centre de la bande follow.
|
||||
*/
|
||||
const titleCenter = rect.top + rect.height / 2;
|
||||
|
||||
if (titleCenter <= bandCenter + 1) {
|
||||
active = {
|
||||
node,
|
||||
titleNode,
|
||||
title,
|
||||
};
|
||||
continue;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return active;
|
||||
};
|
||||
|
||||
const detailCandidatesFor = (sectionNode) => {
|
||||
const section = sectionNode?.closest("section");
|
||||
if (!section) return [];
|
||||
|
||||
const selector = [
|
||||
".glossary-portal-panel__head",
|
||||
"[class*='__head']",
|
||||
"[class*='__title']",
|
||||
"h3",
|
||||
"h4"
|
||||
].join(",");
|
||||
|
||||
return Array.from(section.querySelectorAll(selector)).filter((node) => {
|
||||
if (node.closest(".glossary-portal-section__head")) return false;
|
||||
|
||||
const titleNode = titleNodeFor(node);
|
||||
const title = cleanFollowTitle(titleNode);
|
||||
if (!title) return false;
|
||||
|
||||
const rect = titleNode.getBoundingClientRect();
|
||||
if (rect.height <= 0) return false;
|
||||
|
||||
return true;
|
||||
});
|
||||
};
|
||||
|
||||
const renderFollowTextLine = (inner, className, title) => {
|
||||
if (!title) return;
|
||||
|
||||
let line = inner.querySelector(`.${className}`);
|
||||
if (!line) {
|
||||
line = document.createElement("div");
|
||||
line.className = `rf-line ${className}`;
|
||||
inner.appendChild(line);
|
||||
}
|
||||
|
||||
line.textContent = title;
|
||||
};
|
||||
|
||||
const setCompactFollowOff = () => {
|
||||
lastCompactFollowTitle = null;
|
||||
|
||||
if (lastCompactFollowOn !== false) {
|
||||
lastCompactFollowOn = false;
|
||||
body.classList.remove(FOLLOW_ON_CLASS);
|
||||
follow.classList.remove("is-on");
|
||||
follow.setAttribute("aria-hidden", "true");
|
||||
}
|
||||
|
||||
follow.style.display = "block";
|
||||
follow.style.setProperty("opacity", "0", "important");
|
||||
follow.style.setProperty("visibility", "hidden", "important");
|
||||
follow.style.setProperty("pointer-events", "none", "important");
|
||||
|
||||
root.style.setProperty("--followbar-h", "0px");
|
||||
};
|
||||
|
||||
const syncGenericCompactFollow = (condensed) => {
|
||||
if (!isGenericCompactPortal()) return false;
|
||||
|
||||
if (!condensed) {
|
||||
setCompactFollowOff();
|
||||
return true;
|
||||
}
|
||||
|
||||
const sectionHeads = Array.from(
|
||||
document.querySelectorAll(".glossary-portal-section__head")
|
||||
);
|
||||
|
||||
const sectionState = passedTitleStateFrom(sectionHeads);
|
||||
|
||||
if (!sectionState?.title) {
|
||||
setCompactFollowOff();
|
||||
return true;
|
||||
}
|
||||
|
||||
const detailState = passedTitleStateFrom(detailCandidatesFor(sectionState.node));
|
||||
|
||||
follow.innerHTML = "";
|
||||
|
||||
const inner = document.createElement("div");
|
||||
inner.className = "reading-follow__inner";
|
||||
|
||||
renderFollowTextLine(inner, "rf-h2", sectionState.title);
|
||||
|
||||
if (detailState?.title && detailState.title !== sectionState.title) {
|
||||
renderFollowTextLine(inner, "rf-h3", detailState.title);
|
||||
}
|
||||
|
||||
follow.appendChild(inner);
|
||||
|
||||
if (lastCompactFollowOn !== true) {
|
||||
lastCompactFollowOn = true;
|
||||
body.classList.add(FOLLOW_ON_CLASS);
|
||||
follow.classList.add("is-on");
|
||||
follow.setAttribute("aria-hidden", "false");
|
||||
}
|
||||
|
||||
follow.style.display = "block";
|
||||
follow.style.setProperty("opacity", "1", "important");
|
||||
follow.style.setProperty("visibility", "visible", "important");
|
||||
follow.style.setProperty("pointer-events", "auto", "important");
|
||||
applyCompactFollowRail();
|
||||
|
||||
inner.style.setProperty("opacity", "1", "important");
|
||||
inner.style.setProperty("visibility", "visible", "important");
|
||||
inner.style.setProperty("display", "block", "important");
|
||||
|
||||
requestAnimationFrame(() => {
|
||||
applyCompactFollowRail();
|
||||
const h = Math.max(0, Math.round(follow.getBoundingClientRect().height || 0));
|
||||
root.style.setProperty("--followbar-h", `${h}px`);
|
||||
});
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
/* GENERIC_COMPACT_FOLLOW_CLEAN_END */
|
||||
|
||||
const maybeAutoCollapseOnScroll = () => {
|
||||
if (isCompactViewport() && !compactStickyEnabled()) {
|
||||
@@ -257,6 +562,7 @@ const {
|
||||
|
||||
const syncAll = () => {
|
||||
stripLocalSticky();
|
||||
applyCompactHeroRail();
|
||||
|
||||
if (isCompactViewport() && !compactStickyEnabled()) {
|
||||
body.classList.remove(FOLLOW_ON_CLASS);
|
||||
@@ -291,14 +597,27 @@ const {
|
||||
|
||||
requestAnimationFrame(() => {
|
||||
applyLocalStickyHeight();
|
||||
syncFollowState();
|
||||
applyCompactFollowRail();
|
||||
|
||||
if (syncGenericCompactFollow(condensed)) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
window.__archiUpdateFollow?.();
|
||||
} catch {}
|
||||
|
||||
syncFollowState();
|
||||
});
|
||||
|
||||
requestAnimationFrame(() => {
|
||||
applyLocalStickyHeight();
|
||||
applyCompactFollowRail();
|
||||
|
||||
if (syncGenericCompactFollow(condensed)) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
window.__archiUpdateFollow?.();
|
||||
} catch {}
|
||||
@@ -335,8 +654,19 @@ const {
|
||||
heroResizeObserver?.observe(hero);
|
||||
|
||||
window.addEventListener("scroll", onScroll, { passive: true });
|
||||
window.addEventListener("resize", schedule);
|
||||
window.addEventListener("pageshow", schedule);
|
||||
window.addEventListener("resize", () => {
|
||||
heroPinStartY = null;
|
||||
applyCompactHeroRail();
|
||||
applyCompactFollowRail();
|
||||
schedule();
|
||||
});
|
||||
window.addEventListener("pageshow", () => {
|
||||
heroPinStartY = null;
|
||||
applyCompactHeroRail();
|
||||
applyCompactFollowRail();
|
||||
captureHeroPinStart(true);
|
||||
schedule();
|
||||
});
|
||||
|
||||
if (document.fonts?.ready) {
|
||||
document.fonts.ready.then(schedule).catch(() => {});
|
||||
@@ -354,6 +684,9 @@ const {
|
||||
mqSmallLandscape.addListener(schedule);
|
||||
}
|
||||
|
||||
applyCompactHeroRail();
|
||||
applyCompactFollowRail();
|
||||
captureHeroPinStart(true);
|
||||
schedule();
|
||||
};
|
||||
|
||||
@@ -441,65 +774,65 @@ const {
|
||||
}
|
||||
|
||||
@media (max-width: 860px){
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) #reading-follow),
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) #reading-follow .reading-follow__inner){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) #reading-follow),
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page)){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page)){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) .glossary-portal-hero){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) .glossary-portal-hero){
|
||||
margin-bottom: var(--portal-hero-margin-bottom, 18px);
|
||||
border-radius: 20px !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) .glossary-portal-hero__more){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) .glossary-portal-hero__more){
|
||||
max-height: none !important;
|
||||
opacity: 1 !important;
|
||||
overflow: visible !important;
|
||||
pointer-events: auto !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) .glossary-portal-hero__toggle){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) .glossary-portal-hero__toggle){
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (max-width: 920px) and (max-height: 520px){
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) #reading-follow),
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) #reading-follow .reading-follow__inner){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) #reading-follow),
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page)){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page)){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) .glossary-portal-hero){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) .glossary-portal-hero){
|
||||
margin-bottom: var(--portal-hero-margin-bottom, 12px);
|
||||
border-radius: 16px !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) .glossary-portal-hero__more){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) .glossary-portal-hero__more){
|
||||
max-height: none !important;
|
||||
opacity: 1 !important;
|
||||
overflow: visible !important;
|
||||
pointer-events: auto !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page:not(.is-index-complet-page) .glossary-portal-hero__toggle){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-compact-sticky):not(.is-index-complet-page) .glossary-portal-hero__toggle){
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
@@ -571,4 +904,279 @@ const {
|
||||
}
|
||||
}
|
||||
|
||||
/* PORTAL_COMPACT_STICKY_CLEAN_START
|
||||
Portails glossaire — comportement compact générique final.
|
||||
- Aucune condensation en haut de page.
|
||||
- Condensation seulement après seuil documentaire réel.
|
||||
- Hero sticky sous l’edition-bar.
|
||||
- reading-follow collé sous le hero condensé.
|
||||
- index-complet exclu.
|
||||
*/
|
||||
|
||||
@media (min-width: 981px){
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-hero-condensed) #reading-follow),
|
||||
:global(body.is-glossary-portal-page:not(.glossary-portal-hero-condensed) #reading-follow .reading-follow__inner){
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 980px){
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) .glossary-portal-hero),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) .glossary-page-hero){
|
||||
position: sticky !important;
|
||||
top: var(--glossary-sticky-top, calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px))) !important;
|
||||
z-index: 72 !important;
|
||||
display: grid !important;
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
min-width: 0 !important;
|
||||
overflow: hidden !important;
|
||||
transform: translateZ(0) !important;
|
||||
backface-visibility: hidden !important;
|
||||
background:
|
||||
linear-gradient(rgba(0,0,0,.72), rgba(0,0,0,.96)),
|
||||
radial-gradient(780px 220px at 18% 0%, rgba(0,217,255,.08), transparent 60%) !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page):not(.glossary-portal-hero-condensed) #reading-follow),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page):not(.glossary-portal-hero-condensed) #reading-follow .reading-follow__inner),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page):not(.glossary-portal-follow-on) #reading-follow),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page):not(.glossary-portal-follow-on) #reading-follow .reading-follow__inner){
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-portal-hero),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-page-hero){
|
||||
padding: 8px 10px 9px !important;
|
||||
row-gap: 4px !important;
|
||||
border-radius: 16px 16px 0 0 !important;
|
||||
margin-bottom: 0 !important;
|
||||
box-shadow: 0 12px 30px rgba(0,0,0,.24) !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-portal-hero__kicker){
|
||||
font-size: 9px !important;
|
||||
line-height: 1.05 !important;
|
||||
letter-spacing: .11em !important;
|
||||
opacity: .72 !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-portal-hero h1){
|
||||
font-size: clamp(1.35rem, 5.1vw, 1.72rem) !important;
|
||||
line-height: 1.02 !important;
|
||||
letter-spacing: -.03em !important;
|
||||
margin: 0 !important;
|
||||
max-width: 100% !important;
|
||||
white-space: normal !important;
|
||||
overflow: visible !important;
|
||||
text-overflow: clip !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed:not(.glossary-portal-hero-expanded) .glossary-portal-hero__intro--lead){
|
||||
display: -webkit-box !important;
|
||||
-webkit-box-orient: vertical !important;
|
||||
-webkit-line-clamp: 2 !important;
|
||||
line-clamp: 2 !important;
|
||||
max-height: calc(2 * 1.12em) !important;
|
||||
overflow: hidden !important;
|
||||
font-size: .72rem !important;
|
||||
line-height: 1.12 !important;
|
||||
opacity: .78 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed:not(.glossary-portal-hero-expanded) .glossary-portal-hero__more){
|
||||
max-height: 0 !important;
|
||||
opacity: 0 !important;
|
||||
overflow: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-portal-hero__toggle){
|
||||
min-height: 22px !important;
|
||||
padding: 2px 0 !important;
|
||||
font-size: 11px !important;
|
||||
line-height: 1.05 !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow){
|
||||
display: block !important;
|
||||
position: fixed !important;
|
||||
left: var(--reading-left) !important;
|
||||
width: var(--reading-width) !important;
|
||||
top: calc(
|
||||
var(--glossary-sticky-top, calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)))
|
||||
+ var(--glossary-local-sticky-h, 0px)
|
||||
- 1px
|
||||
) !important;
|
||||
z-index: 71 !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-follow-on #reading-follow),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-follow-on #reading-follow .reading-follow__inner){
|
||||
opacity: 1 !important;
|
||||
visibility: visible !important;
|
||||
pointer-events: auto !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .reading-follow__inner){
|
||||
min-height: 26px !important;
|
||||
padding: 5px 10px 6px !important;
|
||||
border-top-left-radius: 0 !important;
|
||||
border-top-right-radius: 0 !important;
|
||||
border-bottom-left-radius: 13px !important;
|
||||
border-bottom-right-radius: 13px !important;
|
||||
border-top: 1px solid rgba(127,127,127,.16) !important;
|
||||
background:
|
||||
linear-gradient(180deg, rgba(0,0,0,.80), rgba(0,0,0,.94)),
|
||||
radial-gradient(620px 120px at 18% 0%, rgba(0,217,255,.055), transparent 60%) !important;
|
||||
box-shadow: 0 10px 22px rgba(0,0,0,.18) !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .rf-h1),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .rf-h3),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .rf-actions){
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .rf-h2){
|
||||
display: block !important;
|
||||
font-size: .86rem !important;
|
||||
line-height: 1.08 !important;
|
||||
font-weight: 800 !important;
|
||||
white-space: nowrap !important;
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 761px) and (max-width: 980px){
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-portal-hero),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-page-hero){
|
||||
padding: 8px 12px 8px !important;
|
||||
border-radius: 16px 16px 0 0 !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-portal-hero h1){
|
||||
font-size: clamp(1.48rem, 3vw, 1.82rem) !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed:not(.glossary-portal-hero-expanded) .glossary-portal-hero__intro--lead){
|
||||
font-size: .76rem !important;
|
||||
line-height: 1.14 !important;
|
||||
max-height: calc(2 * 1.14em) !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .rf-h2){
|
||||
font-size: .9rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (max-width: 920px) and (max-height: 520px){
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-portal-hero),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-page-hero){
|
||||
padding: 5px 8px 5px !important;
|
||||
row-gap: 2px !important;
|
||||
border-radius: 12px 12px 0 0 !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed .glossary-portal-hero h1){
|
||||
font-size: clamp(1rem, 3vw, 1.22rem) !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page).glossary-portal-hero-condensed:not(.glossary-portal-hero-expanded) .glossary-portal-hero__intro--lead){
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .reading-follow__inner){
|
||||
min-height: 22px !important;
|
||||
padding: 4px 8px 5px !important;
|
||||
border-bottom-left-radius: 11px !important;
|
||||
border-bottom-right-radius: 11px !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .rf-h2){
|
||||
font-size: .78rem !important;
|
||||
line-height: 1.04 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* PORTAL_COMPACT_STICKY_CLEAN_END */
|
||||
|
||||
|
||||
/* PORTAL_COMPACT_STICKY_OVERFLOW_FIX_START
|
||||
Libération du contexte sticky sur les portails glossaire compacts.
|
||||
Le hero ne peut pas coller sous l’edition-bar si un ancêtre le piège
|
||||
dans un overflow/contain compact.
|
||||
*/
|
||||
|
||||
@media (max-width: 980px){
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) .page),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) .page-shell),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) .reading),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) article.reading),
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) main){
|
||||
overflow: visible !important;
|
||||
overflow-x: visible !important;
|
||||
overflow-y: visible !important;
|
||||
contain: none !important;
|
||||
transform: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) .glossary-portal-hero){
|
||||
align-self: start !important;
|
||||
justify-self: stretch !important;
|
||||
position: sticky !important;
|
||||
top: var(--glossary-sticky-top, calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px))) !important;
|
||||
z-index: 72 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* PORTAL_COMPACT_STICKY_OVERFLOW_FIX_END */
|
||||
|
||||
|
||||
/* PORTAL_COMPACT_FOLLOW_TWO_LINES_START
|
||||
Le follow compact des portails génériques affiche deux niveaux :
|
||||
section active + sous-tête interne active.
|
||||
*/
|
||||
|
||||
@media (max-width: 980px){
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .rf-h2){
|
||||
display: block !important;
|
||||
white-space: nowrap !important;
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .rf-h3){
|
||||
display: block !important;
|
||||
margin-top: 1px !important;
|
||||
font-size: .68rem !important;
|
||||
line-height: 1.05 !important;
|
||||
letter-spacing: .01em !important;
|
||||
opacity: .72 !important;
|
||||
white-space: nowrap !important;
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .reading-follow__inner){
|
||||
padding-top: 5px !important;
|
||||
padding-bottom: 6px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 520px){
|
||||
:global(body.is-glossary-portal-page.glossary-portal-compact-sticky:not(.is-index-complet-page) #reading-follow .rf-h3){
|
||||
font-size: .64rem !important;
|
||||
line-height: 1.02 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* PORTAL_COMPACT_FOLLOW_TWO_LINES_END */
|
||||
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Conclusion — ArchiCraT-IA
|
||||
title: Conclusion — L’exigence archicratique
|
||||
edition: archicrat-ia
|
||||
status: essai_these
|
||||
level: 1
|
||||
@@ -10,7 +10,7 @@ order: 70
|
||||
summary: ''
|
||||
source:
|
||||
kind: docx
|
||||
path: sources/docx/archicrat-ia/Conclusion-Archicrat-IA-version_officielle.docx
|
||||
path: sources/docx/archicrat-ia/Conclusion—Archicratie-La_tenue_des_mondes-version_resserree.docx
|
||||
---
|
||||
|
||||
Nous n'assistons ni à un retour primordial du désordre ni à une
|
||||
@@ -57,7 +57,7 @@ mais l'altération des formes capables de le porter. Non la disparition
|
||||
du politique, mais sa désarticulation progressive hors des scènes où il
|
||||
pouvait encore apparaître comme tel. À ce niveau, ce que nous appelons
|
||||
crise ne relève plus d'un dysfonctionnement partiel, ni d'une dérive
|
||||
simplement sectorielle. Elle engage les conditions même dans lesquelles
|
||||
simplement sectorielle. Elle engage les conditions mêmes dans lesquelles
|
||||
un monde peut encore faire apparaître, soutenir et transformer ce qui le
|
||||
traverse.
|
||||
|
||||
@@ -75,12 +75,12 @@ trop souvent se confondre.
|
||||
|
||||
Encore fallait-il que ce vocabulaire n'usurpe pas sa propre nécessité.
|
||||
L'archicratie ne vaut pas parce qu'elle pourrait tout redire dans sa
|
||||
langue ; elle vaut seulement là où elle permet de discerner quelque
|
||||
chose qui, sans elle, resterait confondu, euphémisé ou inaperçu. Elle ne
|
||||
constitue donc ni une théorie totale du politique, ni une clef
|
||||
universelle des mondes historiques, mais un instrument critique situé,
|
||||
tenu à une obligation de retenue : se taire là où il n'apporte aucun
|
||||
gain de lisibilité, et répondre de ses distinctions là où il prétend en
|
||||
langue ; elle vaut là où elle permet de discerner quelque chose qui,
|
||||
sans elle, resterait confondu, euphémisé ou inaperçu. Elle ne constitue
|
||||
donc ni une théorie totale du politique, ni une clef universelle des
|
||||
mondes historiques, mais un instrument critique situé, tenu à une
|
||||
obligation de retenue : se taire là où il n'apporte aucun gain de
|
||||
lisibilité, et répondre de ses distinctions là où il prétend en
|
||||
produire. C'est à cette condition seulement qu'un paradigme cesse d'être
|
||||
un idiome de surplomb pour devenir une épreuve réelle de connaissance.
|
||||
|
||||
@@ -132,14 +132,14 @@ sectorielles. Elles manifestent, chacune à leur manière, la difficulté
|
||||
croissante à instituer des formes dans lesquelles ce qui est affecté par
|
||||
les décisions peut être reconduit à une épreuve. Ce qui manque n'est pas
|
||||
la capacité à produire des normes, des infrastructures, des critères,
|
||||
des instruments. Ce qui manque, de plus en plus, c'est l'habileté à les
|
||||
porter. De là la nécessité d'un déplacement conceptuel décisif :
|
||||
substituer au lexique lisse de la durabilité la notion de co-viabilité.
|
||||
Non pas un équilibre supposé entre intérêts déjà constitués, ni la
|
||||
correction technocratique d'externalités, mais l'institution toujours
|
||||
fragile, toujours révisable, toujours conflictuelle, des conditions sous
|
||||
lesquelles des formes de vie hétérogènes peuvent encore tenir ensemble
|
||||
sans destruction irréversible.
|
||||
des instruments. Ce qui manque, de plus en plus, ce sont les formes
|
||||
capables de les porter. De là la nécessité d'un déplacement conceptuel
|
||||
décisif : substituer au lexique lisse de la durabilité la notion de
|
||||
co-viabilité. Non pas un équilibre supposé entre intérêts déjà
|
||||
constitués, ni la correction technocratique d'externalités, mais
|
||||
l'institution toujours fragile, toujours révisable, toujours
|
||||
conflictuelle, des conditions sous lesquelles des formes de vie
|
||||
hétérogènes peuvent encore tenir ensemble sans destruction irréversible.
|
||||
|
||||
Ce qui se dégage ainsi de l'ensemble n'est pas une doctrine
|
||||
supplémentaire, encore moins un système clos. C'est une condition — qui ne garantit ni harmonie ni salut, mais sans laquelle aucune
|
||||
@@ -193,33 +193,32 @@ qu'elle affecte, la différence ne tient pas à l'intensité du pouvoir,
|
||||
mais à la possibilité de sa mise à l'épreuve. Ce qui rend un monde
|
||||
habitable n'est ni l'absence de tensions, ni la stabilité de ses
|
||||
équilibres, ni la pure efficacité de ses dispositifs. C'est la forme
|
||||
dans laquelle ce qui le traverse peut être porté sans être nié, différé
|
||||
sans être dissous, exposé sans être annihilé.
|
||||
dans laquelle ses tensions peuvent être portées sans déni, différées
|
||||
sans dissolution, exposées sans annihilation.
|
||||
|
||||
À partir de là, la question n'est plus d'abord celle d'un bon régime,
|
||||
mais celle d'un monde qui tient. Non d'un monde pacifié, homogène ou
|
||||
réconcilié, mais d'un monde capable de porter ce qui le traverse sans
|
||||
mais celle d'un monde qui tient. Ce monde n'a pas besoin d'être pacifié,
|
||||
homogène ou réconcilié ; il doit pouvoir porter ce qui le traverse sans
|
||||
s'abolir dans sa propre exécution. Un monde qui ne tient ni par inertie,
|
||||
ni par répétition, ni par l'évidence supposée de ses fondements. Il
|
||||
tient parce qu'il est capable de porter ce qui le traverse sans le nier,
|
||||
de différer ce qui l'affecte sans le dissoudre, d'exposer ce qui le
|
||||
gouverne sans s'effondrer sous sa propre mise en question. Habiter un
|
||||
monde ne signifie pas simplement y vivre. Cela signifie pouvoir y
|
||||
comparaître. Pouvoir y demander d'où parle ce qui décide. Pouvoir y
|
||||
identifier ce qui opère. Pouvoir y rouvrir le temps lorsque l'exécution
|
||||
tend à se refermer sur elle-même. Pouvoir y faire apparaître ce qui,
|
||||
sans cela, demeurerait converti en variable, en score, en flux.
|
||||
monde ne signifie pas simplement vivre en son sein. Cela signifie
|
||||
disposer d'une scène où comparaître, demander d'où parle ce qui décide,
|
||||
identifier ce qui opère, rouvrir le temps lorsque l'exécution tend à se
|
||||
refermer sur elle-même, faire apparaître ce qui, sans cette épreuve,
|
||||
demeurerait converti en variable, en score, en flux.
|
||||
|
||||
La scène prend ici son sens le plus fort. Elle n'est ni un supplément
|
||||
institutionnel, ni un décor ajouté au pouvoir pour en améliorer
|
||||
l'acceptabilité, ni une métaphore commode pour désigner des espaces de
|
||||
parole. Elle est l'une des formes à travers lesquelles un ordre cesse
|
||||
d'être purement opératoire pour devenir politiquement tenable. Là où il
|
||||
y a scène au sens fort — c'est-à-dire espace différé, documenté,
|
||||
institué, capable de suspendre et de requalifier — la régulation ne se
|
||||
contente pas d'agir : elle accepte de comparaître. C'est dans cette
|
||||
comparution que se joue la possibilité, pour un monde, de ne pas se
|
||||
réduire à ce qu'il exécute.
|
||||
d'être purement opératoire pour devenir politiquement tenable. Là où une
|
||||
telle forme existe — espace différé, documenté, institué, capable de
|
||||
suspendre et de requalifier — la régulation ne se contente pas d'agir
|
||||
: elle accepte de comparaître. C'est dans cette comparution que se joue
|
||||
la possibilité, pour un monde, de ne pas se réduire à ce qu'il exécute.
|
||||
|
||||
Il faut ici maintenir une distinction que tout ce travail a jugée
|
||||
décisive. Dire que la scène est condition de viabilité ne signifie
|
||||
@@ -277,20 +276,6 @@ deviennent plus fragiles, plus tardives, plus périphériques. Ce ne sont
|
||||
pas les décisions qui disparaissent ; ce sont les manières dont elles
|
||||
pourraient être tenues.
|
||||
|
||||
Les droits, dans de nombreuses configurations sociales, se trouvent
|
||||
intermédiés par des procédures dont la logique demeure difficilement
|
||||
accessible à ceux qu'elles affectent ; les décisions qui concernent
|
||||
l'habitabilité écologique des milieux se trouvent portées par des
|
||||
instruments puissants, mais rarement rapportées à des espaces où leurs
|
||||
fondements pourraient être disputés ; les architectures numériques et
|
||||
algorithmiques rendent possible une distribution fine des traitements,
|
||||
des classements, des accès, sans rendre aisément localisable le lieu de
|
||||
leur mise à l'épreuve. Ces dimensions ne doivent pas être comprises
|
||||
comme des sphères séparées. Elles constituent les expressions
|
||||
différenciées d'un même processus : celui par lequel la régulation tend
|
||||
à se déployer hors des formes d'épreuve qui permettaient de la tenir
|
||||
comme monde.
|
||||
|
||||
C'est en ce sens que l'autarchicratie peut être nommée comme la
|
||||
contre-figure terminale de l'archicratie. Non un régime au sens
|
||||
classique, ni une idéologie, ni un type d'État, mais une configuration
|
||||
@@ -303,10 +288,75 @@ boucles se ferment. Les ajustements se font à partir de leurs propres
|
||||
résultats. Les audits vérifient la conformité à des critères produits
|
||||
par les systèmes eux-mêmes. La régulation devient auto-référentielle.
|
||||
|
||||
Son intensité contemporaine tient toutefois à ce qu'elle ne demeure pas
|
||||
extérieure aux sujets qu'elle régule. Lorsque chacun apprend à se noter,
|
||||
se comparer, s'optimiser, se rendre compatible, anticiper les seuils qui
|
||||
le classent ou prévenir son propre déclassement, la régulation ne
|
||||
s'exerce plus seulement depuis des dispositifs séparés. Elle se prolonge
|
||||
dans des conduites d'ajustement par lesquelles les existences deviennent
|
||||
les opératrices contraintes de leur propre conformité. L'autarchicratie
|
||||
atteint alors son degré le plus intime : non seulement lorsque l'ordre
|
||||
se mesure lui-même, mais lorsque les sujets se gouvernent eux-mêmes
|
||||
selon des critères qu'ils n'ont pas institués.
|
||||
|
||||
Cette intimité nouvelle de la régulation a trouvé dans la rationalité
|
||||
néolibérale l'un de ses vecteurs historiques les plus puissants. Non
|
||||
comme doctrine extérieure aux mutations industrielles récentes, mais
|
||||
comme manière de faire tenir ensemble l'âge informatique et l'âge
|
||||
algorithmique. La troisième révolution industrielle a donné au signal, à
|
||||
l'indicateur, à la concurrence, à l'audit, à la solvabilité et au
|
||||
feedback une autorité pratique inédite : institutions, entreprises,
|
||||
services publics, individus ont été conduits à se rendre lisibles dans
|
||||
des formats de performance. La quatrième fait descendre cette autorité
|
||||
plus avant dans les conduites. Le classement prépare la décision.
|
||||
L'évaluation aménage l'environnement où certains gestes deviennent
|
||||
probables, certains parcours préférables, certains écarts coûteux avant
|
||||
même d'être nommés. Le sujet n'est plus simplement contraint d'obéir ;
|
||||
il apprend à devancer les critères qui l'évaluent, à prévenir son
|
||||
déclassement, à traduire son temps, son travail, sa santé, ses désirs,
|
||||
ses déplacements en signes compatibles avec les dispositifs qui le
|
||||
rendent calculable. L'autarchicratisation contemporaine se noue dans
|
||||
cette intériorisation : la régulation fabrique les formats de réalité
|
||||
auxquels les existences doivent ensuite se rendre conformes.
|
||||
|
||||
Mais cette rationalité ne flotte pas dans un ciel d'indicateurs. Sa
|
||||
vérité matérielle affleure dans les ressources dont dépend l'habitation
|
||||
commune. Depuis les révolutions industrielles, chaque promesse de
|
||||
puissance engage des sous-sols, des fleuves, des nappes, des ports, des
|
||||
mines, des pipelines, des câbles, des centres de données, des corps
|
||||
exposés, des territoires rendus disponibles. Le charbon et le pétrole
|
||||
ont porté la mécanisation, les transports, la guerre industrielle et
|
||||
l'accélération des échanges ; le gaz et l'uranium ont reconfiguré
|
||||
l'énergie comme dépendance stratégique ; le sable, le cuivre, la
|
||||
bauxite, le cobalt, le coltan, les terres rares, le germanium, le
|
||||
tritium ou l'hélium-3 engagent désormais la construction,
|
||||
l'électronique, le calcul, les batteries, les réseaux, les armements et
|
||||
les promesses de transition. Une ressource n'est jamais une matière
|
||||
posée devant un besoin. Elle est un nœud d'autorisation, d'extraction,
|
||||
d'acheminement, de travail, de dette écologique, de violence
|
||||
territoriale et de futur engagé. La co-viabilité atteint ici son sol le
|
||||
plus concret : savoir qui prélève, qui consomme, qui stocke, qui manque,
|
||||
qui respire les poussières, qui traverse les pénuries, qui habite les
|
||||
paysages défaits, qui supporte les déchets, qui paie la puissance des
|
||||
autres par la fragilisation de son propre monde.
|
||||
|
||||
L'exigence archicratique engage ainsi la comparution des chaînes
|
||||
matérielles autant que celle des décisions, des normes et des
|
||||
algorithmes qu'elles soutiennent. Les circuits d'extraction,
|
||||
d'approvisionnement, de combustion, de refroidissement, de transport, de
|
||||
stockage, de calcul, de financement et de sécurisation appartiennent
|
||||
pleinement à la scène. Interroger une régulation revient alors à
|
||||
demander d'où viennent ses ressources, quels milieux elle transforme,
|
||||
quelles dépendances elle installe, quels territoires elle expose, quels
|
||||
corps elle requiert, quelles formes de vie elle rend possibles ou
|
||||
impossibles. Sans cette comparution matérielle, la co-viabilité
|
||||
manquerait son point le plus sensible : la lutte pour les conditions
|
||||
terrestres de l'habitation commune.
|
||||
|
||||
Cette bascule ne doit pas être dramatisée comme si elle était totale,
|
||||
homogène, déjà accomplie. Des scènes subsistent, parfois robustes,
|
||||
parfois fragiles. Des espaces de contestation, de délibération, de
|
||||
reprise continuent d'exister. Mais ils apparaissent souvent comme
|
||||
homogène, déjà parfaitement accomplie. Des scènes subsistent, parfois
|
||||
robustes, parfois fragiles. Des espaces de contestation, de délibération
|
||||
et de reprise continuent d'exister. Mais ils apparaissent souvent comme
|
||||
disjoints des lieux où les décisions se prennent effectivement. La
|
||||
tension se joue moins entre présence et absence de scène qu'entre leur
|
||||
centralité et leur marginalisation. Le problème décisif n'est pas de
|
||||
@@ -415,3 +465,7 @@ peu d'être habitable. Là où elle demeure ouverte, fût-ce dans le
|
||||
conflit, sous contrainte, précairement, quelque chose du politique
|
||||
subsiste encore : non la paix, ni l'innocence, ni l'harmonie, mais la
|
||||
capacité d'un monde à ne pas se confondre avec sa propre exécution.
|
||||
|
||||
C'est là, précisément, que commence l'exigence archicratique : pouvoir
|
||||
encore demander pourquoi, suivre comment, et rouvrir la scène où ce qui
|
||||
s'exécute au nom d'un monde doit répondre de ce qu'il fait à ce monde.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -31,7 +31,7 @@ const { Content, headings } = await render(entry);
|
||||
currentSlug={String(entry.id).replace(/\.(md|mdx)$/i, "")}
|
||||
collection="archicrat-ia"
|
||||
basePath="/archicrat-ia"
|
||||
label="Table des matières — ArchiCraT-IA"
|
||||
label="Table des matières — Archicratie"
|
||||
/>
|
||||
<LocalToc headings={headings} />
|
||||
</Fragment>
|
||||
|
||||
@@ -6,14 +6,14 @@ const entries = await getCollection("archicrat-ia");
|
||||
entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
|
||||
---
|
||||
|
||||
<SiteLayout title="Essai-thèse — ArchiCraT-IA">
|
||||
<SiteLayout title="Archicratie — La tenue des mondes">
|
||||
<section class="landing landing-home">
|
||||
<header class="landing-hero">
|
||||
<p class="landing-kicker">Corpus principal</p>
|
||||
<h1>Essai-thèse — ArchiCraT-IA</h1>
|
||||
<p class="landing-kicker">Essai-thèse</p>
|
||||
<h1>Archicratie — La tenue des mondes</h1>
|
||||
<p class="landing-lead">
|
||||
Fondements, histoire, philosophie du pouvoir, tensions et régulations
|
||||
archicratiques.
|
||||
Une grammaire des régulations qui ne se contentent pas de fonctionner,
|
||||
mais doivent encore répondre de ce qu’elles font.
|
||||
</p>
|
||||
</header>
|
||||
|
||||
@@ -23,22 +23,38 @@ entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
|
||||
|
||||
<p>
|
||||
Cet essai-thèse présente l’architecture conceptuelle principale du paradigme
|
||||
archicratique. Il en expose les fondements, les distinctions opératoires,
|
||||
les tensions internes et les conditions d’application aux régulations
|
||||
collectives contemporaines.
|
||||
archicratique. Il distingue ce qui fonde une régulation, ce qui l’opère,
|
||||
et ce qui la met à l’épreuve, afin de comprendre dans quelles conditions
|
||||
un monde ne se contente pas de fonctionner, mais peut encore répondre de
|
||||
ce qu’il fait vivre, use, expose et rend possible.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Le texte doit être lu comme une proposition théorique structurée : assez
|
||||
stabilisée pour offrir un cadre de discernement, assez ouverte pour demeurer
|
||||
révisable, discutable et perfectible.
|
||||
Le texte doit être lu comme une proposition théorique structurée :
|
||||
suffisamment stabilisée pour offrir une grammaire de discernement,
|
||||
suffisamment ouverte pour demeurer discutable, perfectible et exposée à
|
||||
sa propre épreuve.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Son enjeu n’est pas de clore une doctrine, mais de rendre pensable un plan
|
||||
souvent négligé du politique : celui des conditions construites, des
|
||||
médiations effectives et des scènes où les régulations peuvent être
|
||||
éprouvées, contestées et reprises.
|
||||
Son enjeu n’est pas de clore une doctrine du pouvoir, mais de rendre
|
||||
visible un plan souvent négligé du politique : celui des conditions
|
||||
construites, des médiations effectives et des scènes où les régulations
|
||||
peuvent être comprises, contestées et reprises par ceux qu’elles affectent.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="edition-note" aria-labelledby="seuil-title">
|
||||
<p class="landing-kicker">Phrase de seuil</p>
|
||||
<h2 id="seuil-title">Le pouvoir ne cesse pas d’opérer ; il cesse de comparaître.</h2>
|
||||
|
||||
<p>
|
||||
L’ouvrage part de ce déplacement : les décisions continuent d’agir, les
|
||||
dispositifs fonctionnent, les ressources sont mobilisées, mais les scènes
|
||||
où leurs raisons, leurs instruments et leurs effets peuvent être exposés
|
||||
deviennent plus fragiles. L’archicratie nomme l’exigence inverse : faire
|
||||
comparaître ce qui fonde, ce qui opère et ce qui affecte les mondes que
|
||||
nous habitons.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -57,5 +73,34 @@ entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="landing-section">
|
||||
<div class="landing-section__head">
|
||||
<p class="landing-kicker">Prolonger</p>
|
||||
<h2>Entrées complémentaires</h2>
|
||||
</div>
|
||||
|
||||
<div class="landing-grid">
|
||||
<a class="landing-card" href="/commencer/">
|
||||
<strong>Commencer</strong>
|
||||
<small>Entrer par la genèse conceptuelle →</small>
|
||||
</a>
|
||||
|
||||
<a class="landing-card" href="/manifeste/">
|
||||
<strong>Manifeste archicratique</strong>
|
||||
<small>Entrer par la formulation politique directe →</small>
|
||||
</a>
|
||||
|
||||
<a class="landing-card" href="/cas-ia/">
|
||||
<strong>Gouvernance IA</strong>
|
||||
<small>Mettre le paradigme à l’épreuve d’un cas contemporain →</small>
|
||||
</a>
|
||||
|
||||
<a class="landing-card" href="/glossaire/">
|
||||
<strong>Glossaire archicratique</strong>
|
||||
<small>Circuler dans les concepts, scènes et régimes →</small>
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</SiteLayout>
|
||||
</SiteLayout>
|
||||
|
||||
@@ -218,81 +218,10 @@ const prolongerLinks = [
|
||||
<GlossaryPortalStickySync
|
||||
heroMoreId="archi-hero-more"
|
||||
heroToggleId="archi-hero-toggle"
|
||||
mobileBreakpoint={980}
|
||||
compactSticky={true}
|
||||
/>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const boot = () => {
|
||||
const body = document.body;
|
||||
const root = document.documentElement;
|
||||
const follow = document.getElementById("reading-follow");
|
||||
|
||||
if (!body || !root || !follow) return;
|
||||
|
||||
body.classList.add("is-glossary-portal-page");
|
||||
|
||||
const mqMobile = window.matchMedia("(max-width: 860px)");
|
||||
const mqSmallLandscape = window.matchMedia(
|
||||
"(orientation: landscape) and (max-width: 920px) and (max-height: 520px)"
|
||||
);
|
||||
|
||||
const isCompactViewport = () =>
|
||||
mqMobile.matches || mqSmallLandscape.matches;
|
||||
|
||||
const disableFollow = () => {
|
||||
if (!isCompactViewport()) return;
|
||||
|
||||
follow.classList.remove("is-on");
|
||||
follow.setAttribute("aria-hidden", "true");
|
||||
follow.style.display = "none";
|
||||
follow.innerHTML = "";
|
||||
|
||||
root.style.setProperty("--followbar-h", "0px");
|
||||
root.style.setProperty(
|
||||
"--sticky-offset-px",
|
||||
"calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px))"
|
||||
);
|
||||
};
|
||||
|
||||
const enableFollow = () => {
|
||||
if (isCompactViewport()) return;
|
||||
|
||||
follow.style.display = "";
|
||||
};
|
||||
|
||||
const sync = () => {
|
||||
if (isCompactViewport()) {
|
||||
disableFollow();
|
||||
} else {
|
||||
enableFollow();
|
||||
}
|
||||
};
|
||||
|
||||
if (mqMobile.addEventListener) {
|
||||
mqMobile.addEventListener("change", sync);
|
||||
} else if (mqMobile.addListener) {
|
||||
mqMobile.addListener(sync);
|
||||
}
|
||||
|
||||
if (mqSmallLandscape.addEventListener) {
|
||||
mqSmallLandscape.addEventListener("change", sync);
|
||||
} else if (mqSmallLandscape.addListener) {
|
||||
mqSmallLandscape.addListener(sync);
|
||||
}
|
||||
|
||||
window.addEventListener("resize", sync);
|
||||
window.addEventListener("pageshow", sync);
|
||||
|
||||
sync();
|
||||
};
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", boot, { once: true });
|
||||
} else {
|
||||
boot();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</GlossaryLayout>
|
||||
|
||||
<style>
|
||||
@@ -364,38 +293,4 @@ const prolongerLinks = [
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page #reading-follow){
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@media (max-width: 860px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (max-width: 920px) and (max-height: 520px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -328,6 +328,8 @@ const prolongerLinks = [
|
||||
<GlossaryPortalStickySync
|
||||
heroMoreId="cf-hero-more"
|
||||
heroToggleId="cf-hero-toggle"
|
||||
mobileBreakpoint={980}
|
||||
compactSticky={true}
|
||||
/>
|
||||
</GlossaryLayout>
|
||||
|
||||
|
||||
@@ -335,80 +335,10 @@ const prolongerLinks = [
|
||||
<GlossaryPortalStickySync
|
||||
heroMoreId="dyna-hero-more"
|
||||
heroToggleId="dyna-hero-toggle"
|
||||
mobileBreakpoint={980}
|
||||
compactSticky={true}
|
||||
/>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const boot = () => {
|
||||
const body = document.body;
|
||||
const root = document.documentElement;
|
||||
const follow = document.getElementById("reading-follow");
|
||||
|
||||
if (!body || !root || !follow) return;
|
||||
|
||||
body.classList.add("is-glossary-portal-page");
|
||||
|
||||
const mqMobile = window.matchMedia("(max-width: 860px)");
|
||||
const mqSmallLandscape = window.matchMedia(
|
||||
"(orientation: landscape) and (max-width: 920px) and (max-height: 520px)"
|
||||
);
|
||||
|
||||
const isCompactViewport = () =>
|
||||
mqMobile.matches || mqSmallLandscape.matches;
|
||||
|
||||
const disableFollow = () => {
|
||||
if (!isCompactViewport()) return;
|
||||
|
||||
follow.classList.remove("is-on");
|
||||
follow.setAttribute("aria-hidden", "true");
|
||||
follow.style.display = "none";
|
||||
follow.innerHTML = "";
|
||||
|
||||
root.style.setProperty("--followbar-h", "0px");
|
||||
root.style.setProperty(
|
||||
"--sticky-offset-px",
|
||||
"calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px))"
|
||||
);
|
||||
};
|
||||
|
||||
const enableFollow = () => {
|
||||
if (isCompactViewport()) return;
|
||||
follow.style.display = "";
|
||||
};
|
||||
|
||||
const sync = () => {
|
||||
if (isCompactViewport()) {
|
||||
disableFollow();
|
||||
} else {
|
||||
enableFollow();
|
||||
}
|
||||
};
|
||||
|
||||
if (mqMobile.addEventListener) {
|
||||
mqMobile.addEventListener("change", sync);
|
||||
} else if (mqMobile.addListener) {
|
||||
mqMobile.addListener(sync);
|
||||
}
|
||||
|
||||
if (mqSmallLandscape.addEventListener) {
|
||||
mqSmallLandscape.addEventListener("change", sync);
|
||||
} else if (mqSmallLandscape.addListener) {
|
||||
mqSmallLandscape.addListener(sync);
|
||||
}
|
||||
|
||||
window.addEventListener("resize", sync);
|
||||
window.addEventListener("pageshow", sync);
|
||||
|
||||
sync();
|
||||
};
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", boot, { once: true });
|
||||
} else {
|
||||
boot();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</GlossaryLayout>
|
||||
|
||||
<style>
|
||||
@@ -563,38 +493,4 @@ const prolongerLinks = [
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page #reading-follow){
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@media (max-width: 860px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (max-width: 920px) and (max-height: 520px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -663,80 +663,10 @@ const usefulLinks = [
|
||||
<GlossaryPortalStickySync
|
||||
heroMoreId="pa-hero-more"
|
||||
heroToggleId="pa-hero-toggle"
|
||||
mobileBreakpoint={980}
|
||||
compactSticky={true}
|
||||
/>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const boot = () => {
|
||||
const body = document.body;
|
||||
const root = document.documentElement;
|
||||
const follow = document.getElementById("reading-follow");
|
||||
|
||||
if (!body || !root || !follow) return;
|
||||
|
||||
body.classList.add("is-glossary-portal-page");
|
||||
|
||||
const mqMobile = window.matchMedia("(max-width: 860px)");
|
||||
const mqSmallLandscape = window.matchMedia(
|
||||
"(orientation: landscape) and (max-width: 920px) and (max-height: 520px)"
|
||||
);
|
||||
|
||||
const isCompactViewport = () =>
|
||||
mqMobile.matches || mqSmallLandscape.matches;
|
||||
|
||||
const disableFollow = () => {
|
||||
if (!isCompactViewport()) return;
|
||||
|
||||
follow.classList.remove("is-on");
|
||||
follow.setAttribute("aria-hidden", "true");
|
||||
follow.style.display = "none";
|
||||
follow.innerHTML = "";
|
||||
|
||||
root.style.setProperty("--followbar-h", "0px");
|
||||
root.style.setProperty(
|
||||
"--sticky-offset-px",
|
||||
"calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px))"
|
||||
);
|
||||
};
|
||||
|
||||
const enableFollow = () => {
|
||||
if (isCompactViewport()) return;
|
||||
follow.style.display = "";
|
||||
};
|
||||
|
||||
const sync = () => {
|
||||
if (isCompactViewport()) {
|
||||
disableFollow();
|
||||
} else {
|
||||
enableFollow();
|
||||
}
|
||||
};
|
||||
|
||||
if (mqMobile.addEventListener) {
|
||||
mqMobile.addEventListener("change", sync);
|
||||
} else if (mqMobile.addListener) {
|
||||
mqMobile.addListener(sync);
|
||||
}
|
||||
|
||||
if (mqSmallLandscape.addEventListener) {
|
||||
mqSmallLandscape.addEventListener("change", sync);
|
||||
} else if (mqSmallLandscape.addListener) {
|
||||
mqSmallLandscape.addListener(sync);
|
||||
}
|
||||
|
||||
window.addEventListener("resize", sync);
|
||||
window.addEventListener("pageshow", sync);
|
||||
|
||||
sync();
|
||||
};
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", boot, { once: true });
|
||||
} else {
|
||||
boot();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</GlossaryLayout>
|
||||
|
||||
<style>
|
||||
@@ -1072,38 +1002,4 @@ const usefulLinks = [
|
||||
font-size: 10.5px;
|
||||
}
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page #reading-follow){
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@media (max-width: 860px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (max-width: 920px) and (max-height: 520px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -211,80 +211,10 @@ const prolongerLinks = [
|
||||
<GlossaryPortalStickySync
|
||||
heroMoreId="theo-hero-more"
|
||||
heroToggleId="theo-hero-toggle"
|
||||
mobileBreakpoint={980}
|
||||
compactSticky={true}
|
||||
/>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const boot = () => {
|
||||
const body = document.body;
|
||||
const root = document.documentElement;
|
||||
const follow = document.getElementById("reading-follow");
|
||||
|
||||
if (!body || !root || !follow) return;
|
||||
|
||||
body.classList.add("is-glossary-portal-page");
|
||||
|
||||
const mqMobile = window.matchMedia("(max-width: 860px)");
|
||||
const mqSmallLandscape = window.matchMedia(
|
||||
"(orientation: landscape) and (max-width: 920px) and (max-height: 520px)"
|
||||
);
|
||||
|
||||
const isCompactViewport = () =>
|
||||
mqMobile.matches || mqSmallLandscape.matches;
|
||||
|
||||
const disableFollow = () => {
|
||||
if (!isCompactViewport()) return;
|
||||
|
||||
follow.classList.remove("is-on");
|
||||
follow.setAttribute("aria-hidden", "true");
|
||||
follow.style.display = "none";
|
||||
follow.innerHTML = "";
|
||||
|
||||
root.style.setProperty("--followbar-h", "0px");
|
||||
root.style.setProperty(
|
||||
"--sticky-offset-px",
|
||||
"calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px))"
|
||||
);
|
||||
};
|
||||
|
||||
const enableFollow = () => {
|
||||
if (isCompactViewport()) return;
|
||||
follow.style.display = "";
|
||||
};
|
||||
|
||||
const sync = () => {
|
||||
if (isCompactViewport()) {
|
||||
disableFollow();
|
||||
} else {
|
||||
enableFollow();
|
||||
}
|
||||
};
|
||||
|
||||
if (mqMobile.addEventListener) {
|
||||
mqMobile.addEventListener("change", sync);
|
||||
} else if (mqMobile.addListener) {
|
||||
mqMobile.addListener(sync);
|
||||
}
|
||||
|
||||
if (mqSmallLandscape.addEventListener) {
|
||||
mqSmallLandscape.addEventListener("change", sync);
|
||||
} else if (mqSmallLandscape.addListener) {
|
||||
mqSmallLandscape.addListener(sync);
|
||||
}
|
||||
|
||||
window.addEventListener("resize", sync);
|
||||
window.addEventListener("pageshow", sync);
|
||||
|
||||
sync();
|
||||
};
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", boot, { once: true });
|
||||
} else {
|
||||
boot();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</GlossaryLayout>
|
||||
|
||||
<style>
|
||||
@@ -390,38 +320,4 @@ const prolongerLinks = [
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page #reading-follow){
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@media (max-width: 860px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (max-width: 920px) and (max-height: 520px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -313,80 +313,10 @@ const prolongerLinks = [
|
||||
<GlossaryPortalStickySync
|
||||
heroMoreId="scene-hero-more"
|
||||
heroToggleId="scene-hero-toggle"
|
||||
mobileBreakpoint={980}
|
||||
compactSticky={true}
|
||||
/>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const boot = () => {
|
||||
const body = document.body;
|
||||
const root = document.documentElement;
|
||||
const follow = document.getElementById("reading-follow");
|
||||
|
||||
if (!body || !root || !follow) return;
|
||||
|
||||
body.classList.add("is-glossary-portal-page");
|
||||
|
||||
const mqMobile = window.matchMedia("(max-width: 860px)");
|
||||
const mqSmallLandscape = window.matchMedia(
|
||||
"(orientation: landscape) and (max-width: 920px) and (max-height: 520px)"
|
||||
);
|
||||
|
||||
const isCompactViewport = () =>
|
||||
mqMobile.matches || mqSmallLandscape.matches;
|
||||
|
||||
const disableFollow = () => {
|
||||
if (!isCompactViewport()) return;
|
||||
|
||||
follow.classList.remove("is-on");
|
||||
follow.setAttribute("aria-hidden", "true");
|
||||
follow.style.display = "none";
|
||||
follow.innerHTML = "";
|
||||
|
||||
root.style.setProperty("--followbar-h", "0px");
|
||||
root.style.setProperty(
|
||||
"--sticky-offset-px",
|
||||
"calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px))"
|
||||
);
|
||||
};
|
||||
|
||||
const enableFollow = () => {
|
||||
if (isCompactViewport()) return;
|
||||
follow.style.display = "";
|
||||
};
|
||||
|
||||
const sync = () => {
|
||||
if (isCompactViewport()) {
|
||||
disableFollow();
|
||||
} else {
|
||||
enableFollow();
|
||||
}
|
||||
};
|
||||
|
||||
if (mqMobile.addEventListener) {
|
||||
mqMobile.addEventListener("change", sync);
|
||||
} else if (mqMobile.addListener) {
|
||||
mqMobile.addListener(sync);
|
||||
}
|
||||
|
||||
if (mqSmallLandscape.addEventListener) {
|
||||
mqSmallLandscape.addEventListener("change", sync);
|
||||
} else if (mqSmallLandscape.addListener) {
|
||||
mqSmallLandscape.addListener(sync);
|
||||
}
|
||||
|
||||
window.addEventListener("resize", sync);
|
||||
window.addEventListener("pageshow", sync);
|
||||
|
||||
sync();
|
||||
};
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", boot, { once: true });
|
||||
} else {
|
||||
boot();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</GlossaryLayout>
|
||||
|
||||
<style>
|
||||
@@ -523,38 +453,4 @@ const prolongerLinks = [
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page #reading-follow){
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@media (max-width: 860px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (max-width: 920px) and (max-height: 520px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -340,80 +340,10 @@ const prolongerLinks = [
|
||||
<GlossaryPortalStickySync
|
||||
heroMoreId="tir-hero-more"
|
||||
heroToggleId="tir-hero-toggle"
|
||||
mobileBreakpoint={980}
|
||||
compactSticky={true}
|
||||
/>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const boot = () => {
|
||||
const body = document.body;
|
||||
const root = document.documentElement;
|
||||
const follow = document.getElementById("reading-follow");
|
||||
|
||||
if (!body || !root || !follow) return;
|
||||
|
||||
body.classList.add("is-glossary-portal-page");
|
||||
|
||||
const mqMobile = window.matchMedia("(max-width: 860px)");
|
||||
const mqSmallLandscape = window.matchMedia(
|
||||
"(orientation: landscape) and (max-width: 920px) and (max-height: 520px)"
|
||||
);
|
||||
|
||||
const isCompactViewport = () =>
|
||||
mqMobile.matches || mqSmallLandscape.matches;
|
||||
|
||||
const disableFollow = () => {
|
||||
if (!isCompactViewport()) return;
|
||||
|
||||
follow.classList.remove("is-on");
|
||||
follow.setAttribute("aria-hidden", "true");
|
||||
follow.style.display = "none";
|
||||
follow.innerHTML = "";
|
||||
|
||||
root.style.setProperty("--followbar-h", "0px");
|
||||
root.style.setProperty(
|
||||
"--sticky-offset-px",
|
||||
"calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px))"
|
||||
);
|
||||
};
|
||||
|
||||
const enableFollow = () => {
|
||||
if (isCompactViewport()) return;
|
||||
follow.style.display = "";
|
||||
};
|
||||
|
||||
const sync = () => {
|
||||
if (isCompactViewport()) {
|
||||
disableFollow();
|
||||
} else {
|
||||
enableFollow();
|
||||
}
|
||||
};
|
||||
|
||||
if (mqMobile.addEventListener) {
|
||||
mqMobile.addEventListener("change", sync);
|
||||
} else if (mqMobile.addListener) {
|
||||
mqMobile.addListener(sync);
|
||||
}
|
||||
|
||||
if (mqSmallLandscape.addEventListener) {
|
||||
mqSmallLandscape.addEventListener("change", sync);
|
||||
} else if (mqSmallLandscape.addListener) {
|
||||
mqSmallLandscape.addListener(sync);
|
||||
}
|
||||
|
||||
window.addEventListener("resize", sync);
|
||||
window.addEventListener("pageshow", sync);
|
||||
|
||||
sync();
|
||||
};
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", boot, { once: true });
|
||||
} else {
|
||||
boot();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</GlossaryLayout>
|
||||
|
||||
<style>
|
||||
@@ -564,38 +494,4 @@ const prolongerLinks = [
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page #reading-follow){
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@media (max-width: 860px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (max-width: 920px) and (max-height: 520px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -256,6 +256,8 @@ const matrix = [
|
||||
<GlossaryPortalStickySync
|
||||
heroMoreId="topo-hero-more"
|
||||
heroToggleId="topo-hero-toggle"
|
||||
mobileBreakpoint={980}
|
||||
compactSticky={true}
|
||||
/>
|
||||
</GlossaryLayout>
|
||||
|
||||
|
||||
@@ -327,80 +327,10 @@ const prolongerLinks = [
|
||||
<GlossaryPortalStickySync
|
||||
heroMoreId="verbs-hero-more"
|
||||
heroToggleId="verbs-hero-toggle"
|
||||
mobileBreakpoint={980}
|
||||
compactSticky={true}
|
||||
/>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const boot = () => {
|
||||
const body = document.body;
|
||||
const root = document.documentElement;
|
||||
const follow = document.getElementById("reading-follow");
|
||||
|
||||
if (!body || !root || !follow) return;
|
||||
|
||||
body.classList.add("is-glossary-portal-page");
|
||||
|
||||
const mqMobile = window.matchMedia("(max-width: 860px)");
|
||||
const mqSmallLandscape = window.matchMedia(
|
||||
"(orientation: landscape) and (max-width: 920px) and (max-height: 520px)"
|
||||
);
|
||||
|
||||
const isCompactViewport = () =>
|
||||
mqMobile.matches || mqSmallLandscape.matches;
|
||||
|
||||
const disableFollow = () => {
|
||||
if (!isCompactViewport()) return;
|
||||
|
||||
follow.classList.remove("is-on");
|
||||
follow.setAttribute("aria-hidden", "true");
|
||||
follow.style.display = "none";
|
||||
follow.innerHTML = "";
|
||||
|
||||
root.style.setProperty("--followbar-h", "0px");
|
||||
root.style.setProperty(
|
||||
"--sticky-offset-px",
|
||||
"calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px))"
|
||||
);
|
||||
};
|
||||
|
||||
const enableFollow = () => {
|
||||
if (isCompactViewport()) return;
|
||||
follow.style.display = "";
|
||||
};
|
||||
|
||||
const sync = () => {
|
||||
if (isCompactViewport()) {
|
||||
disableFollow();
|
||||
} else {
|
||||
enableFollow();
|
||||
}
|
||||
};
|
||||
|
||||
if (mqMobile.addEventListener) {
|
||||
mqMobile.addEventListener("change", sync);
|
||||
} else if (mqMobile.addListener) {
|
||||
mqMobile.addListener(sync);
|
||||
}
|
||||
|
||||
if (mqSmallLandscape.addEventListener) {
|
||||
mqSmallLandscape.addEventListener("change", sync);
|
||||
} else if (mqSmallLandscape.addListener) {
|
||||
mqSmallLandscape.addListener(sync);
|
||||
}
|
||||
|
||||
window.addEventListener("resize", sync);
|
||||
window.addEventListener("pageshow", sync);
|
||||
|
||||
sync();
|
||||
};
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", boot, { once: true });
|
||||
} else {
|
||||
boot();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</GlossaryLayout>
|
||||
|
||||
<style>
|
||||
@@ -480,38 +410,4 @@ const prolongerLinks = [
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page #reading-follow){
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@media (max-width: 860px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (max-width: 920px) and (max-height: 520px){
|
||||
:global(body.is-glossary-portal-page #reading-follow),
|
||||
:global(body.is-glossary-portal-page #reading-follow .reading-follow__inner){
|
||||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
:global(body.is-glossary-portal-page){
|
||||
--followbar-h: 0px !important;
|
||||
--sticky-offset-px: calc(var(--sticky-header-h, 0px) + var(--page-gap, 12px)) !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -32,12 +32,12 @@ import SiteLayout from "../layouts/SiteLayout.astro";
|
||||
|
||||
<div class="landing-grid">
|
||||
<a class="landing-card" href="/archicrat-ia/">
|
||||
<strong>Essai-thèse — ArchiCraT-IA</strong>
|
||||
<strong>Essai-thèse — Archicratie</strong>
|
||||
<span>
|
||||
Le corpus principal : fondements, histoire, philosophie du pouvoir,
|
||||
tensions et régulations archicratiques.
|
||||
</span>
|
||||
<small>Lire ArchiCraT-IA →</small>
|
||||
<small>Lire Archicratie →</small>
|
||||
</a>
|
||||
|
||||
<a class="landing-card" href="/cas-ia/">
|
||||
|
||||
Reference in New Issue
Block a user